pull/13288/head
ncteisen 7 years ago
parent f0798b4873
commit 684f15b210
  1. 1
      src/core/ext/transport/chttp2/transport/internal.h
  2. 8
      src/core/lib/support/manual_constructor.h
  3. 4
      test/core/support/manual_constructor_test.cc

@ -237,7 +237,6 @@ typedef enum {
GRPC_CHTTP2_KEEPALIVE_STATE_DISABLED,
} grpc_chttp2_keepalive_state;
struct grpc_chttp2_transport {
grpc_transport base; /* must be first */
gpr_refcount refs;

@ -151,14 +151,16 @@ class PolymorphicManualConstructor {
private:
template <class DerivedType>
void FinishInit(DerivedType* p) {
static_assert(manual_ctor_impl::is_one_of<DerivedType, DerivedTypes...>::value,
"DerivedType must be one of the predeclared DerivedTypes");
static_assert(
manual_ctor_impl::is_one_of<DerivedType, DerivedTypes...>::value,
"DerivedType must be one of the predeclared DerivedTypes");
GPR_ASSERT(reinterpret_cast<BaseType*>(static_cast<DerivedType*>(p)) == p);
}
typename std::aligned_storage<
grpc_core::manual_ctor_impl::max_size_of<DerivedTypes...>::value,
grpc_core::manual_ctor_impl::max_align_of<DerivedTypes...>::value>::type space_;
grpc_core::manual_ctor_impl::max_align_of<DerivedTypes...>::value>::type
space_;
};
template <typename Type>

@ -18,7 +18,6 @@
/* Test of gpr synchronization support. */
#include "src/core/lib/support/abstract.h"
#include "src/core/lib/support/manual_constructor.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
@ -27,6 +26,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include "src/core/lib/support/abstract.h"
#include "test/core/util/test_config.h"
class A {
@ -44,6 +44,7 @@ class B : public A {
~B() {}
const char* foo() override { return "B_foo"; }
char get_junk() { return junk[0]; }
private:
char junk[1000];
};
@ -54,6 +55,7 @@ class C : public B {
~C() {}
virtual const char* bar() { return "C_bar"; }
char get_more_junk() { return more_junk[0]; }
private:
char more_junk[1000];
};

Loading…
Cancel
Save