Skip to content
Snippets Groups Projects
Commit e8547764 authored by Mark D. Roth's avatar Mark D. Roth
Browse files

Fix build problems.

parent c1087883
No related branches found
No related tags found
No related merge requests found
......@@ -252,7 +252,7 @@ grpc_error *grpc_channel_stack_builder_finish(
*result = gpr_malloc(prefix_bytes + channel_stack_size);
// fetch a pointer to the channel stack
grpc_channel_stack *channel_stack =
(grpc_channel_stack *)(*result + prefix_bytes);
(grpc_channel_stack *)((char *)(*result) + prefix_bytes);
// and initialize it
grpc_error *error = grpc_channel_stack_init(
exec_ctx, initial_refs, destroy,
......
......@@ -220,6 +220,9 @@ class ChannelData {
if (peer_) gpr_free((void *)peer_);
}
/// Initializes the call data.
virtual grpc_error *Init() { return GRPC_ERROR_NONE; }
/// Caller does NOT take ownership of result.
const char *peer() const { return peer_; }
......@@ -276,15 +279,17 @@ class ChannelFilter final {
public:
static const size_t channel_data_size = sizeof(ChannelDataType);
static void InitChannelElement(grpc_exec_ctx *exec_ctx,
grpc_channel_element *elem,
grpc_channel_element_args *args) {
static grpc_error *InitChannelElement(grpc_exec_ctx *exec_ctx,
grpc_channel_element *elem,
grpc_channel_element_args *args) {
const char *peer =
args->optional_transport
? grpc_transport_get_peer(exec_ctx, args->optional_transport)
: nullptr;
// Construct the object in the already-allocated memory.
new (elem->channel_data) ChannelDataType(*args->channel_args, peer);
ChannelDataType* channel_data =
new (elem->channel_data) ChannelDataType(*args->channel_args, peer);
return channel_data->Init();
}
static void DestroyChannelElement(grpc_exec_ctx *exec_ctx,
......
......@@ -41,9 +41,9 @@
#include "test/core/util/test_config.h"
static void channel_init_func(grpc_exec_ctx *exec_ctx,
grpc_channel_element *elem,
grpc_channel_element_args *args) {
static grpc_error *channel_init_func(grpc_exec_ctx *exec_ctx,
grpc_channel_element *elem,
grpc_channel_element_args *args) {
GPR_ASSERT(args->channel_args->num_args == 1);
GPR_ASSERT(args->channel_args->args[0].type == GRPC_ARG_INTEGER);
GPR_ASSERT(0 == strcmp(args->channel_args->args[0].key, "test_key"));
......@@ -51,6 +51,7 @@ static void channel_init_func(grpc_exec_ctx *exec_ctx,
GPR_ASSERT(args->is_first);
GPR_ASSERT(args->is_last);
*(int *)(elem->channel_data) = 0;
return GRPC_ERROR_NONE;
}
static grpc_error *call_init_func(grpc_exec_ctx *exec_ctx,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment