{}
~cbdata();
- static cbdata *FromUserData(const void *p) {
-#if WITH_VALGRIND
- return cbdata_htable.at(p);
-#else
- const auto t = static_cast<const char *>(p) - offsetof(cbdata, data);
- return reinterpret_cast<cbdata *>(const_cast<char *>(t));
-#endif
- }
+ static cbdata *FromUserData(const void *);
int valid;
int32_t locks;
cbdata_index[type].pool->freeOne(p);
}
+cbdata *
+cbdata::FromUserData(const void *p) {
+#if WITH_VALGRIND
+ return cbdata_htable.at(p);
+#else
+ const auto t = static_cast<const char *>(p) - offsetof(cbdata, data);
+ return reinterpret_cast<cbdata *>(const_cast<char *>(t));
+#endif
+}
+
static void
cbdataInternalInitType(cbdata_type type, const char *name, int size)
{