static void registerPlugin(const char* type, void* plugin, void* private_data) { PluginPrivateData* priv_data= (PluginPrivateData*)private_data; const char* filename = priv_data->name; for (int i = 0; i < PRODBG_PLUGIN_COUNT; ++i) { if (strstr(type, s_pluginTypes[i])) { if (findPlugin(s_plugins[i], filename, ((PDPluginBase*)plugin)->name)) return; // TODO: Verify that we don't add a plugin with the same plugin name in the same plugin PluginData* pluginData = (PluginData*)alloc_zero(sizeof(PluginData)); pluginData->plugin = plugin; pluginData->type = type; pluginData->filename = filename; pluginData->fullFilename = priv_data->fullFilename; pluginData->lib = priv_data->lib; return (void)array_push(s_plugins[i], pluginData); } } pd_error("Unknown pluginType %s - %s", type, ((PDPluginBase*)plugin)->name); }
static enum ud_tree_walk_stat rt_init_once (struct udoc *ud, struct udr_ctx *rc) { if (!rc->uc_user_data) rc->uc_user_data = alloc_zero (sizeof (struct tex_ctx)); return (rc->uc_user_data) ? UD_TREE_OK : UD_TREE_FAIL; }
int ud_new (struct udoc **udp) { struct udoc *ud; ud = alloc_zero (sizeof (*ud)); return !! (*udp = ud); }
ViewPluginInstance* PluginUI::createViewPlugin(PluginData* pluginData) { struct ViewPluginInstance* instance = (ViewPluginInstance*)alloc_zero(sizeof(struct ViewPluginInstance)); PDViewPlugin* plugin = (PDViewPlugin*)pluginData->plugin; void* userData = plugin->create_instance(&instance->ui, Service_getService); instance->plugin = plugin; instance->userData = userData; instance->count = pluginData->count; init(instance); pluginData->count++; return instance; }
static void doAdd(int value) { IntAddData* addData = (IntAddData*)alloc_zero(sizeof(IntAddData)); addData->newValue = value; Commands_execute( { addData, [](void* user_data) { IntAddData* data = (IntAddData*)user_data; data->oldValue = g_intValue; g_intValue += data->newValue; }, [](void* user_data) { IntAddData* data = (IntAddData*)user_data; g_intValue = data->oldValue; } }); }
static BitVec newEmpty(){ return BitVec(alloc_zero()); }
int main(void) { char *p1; char *p2; char *p3; unsigned int ind; p1 = alloc(CHUNK); p2 = alloc(CHUNK); p3 = alloc(CHUNK); test_assert(p1); test_assert(p2); test_assert(p3); set(p1, CHUNK); set(p2, CHUNK); set(p3, CHUNK); sp1 = alloc(CHUNK); sp2 = alloc(CHUNK); sp3 = alloc(CHUNK); test_assert(sp1); test_assert(sp2); test_assert(sp3); set(sp1, CHUNK); set(sp2, CHUNK); set(sp3, CHUNK); test_assert(alloc_re((void *) &p1, CHUNK, CHUNK * 2)); test_assert(alloc_re((void *) &p2, CHUNK, CHUNK * 2)); test_assert(alloc_re((void *) &p3, CHUNK, CHUNK * 2)); test_assert(p1[0] == 0x41); test_assert(p2[0] == 0x41); test_assert(p3[0] == 0x41); set(p1, CHUNK * 2); set(p2, CHUNK * 2); set(p3, CHUNK * 2); test_assert(alloc_re((void *) &sp1, CHUNK, CHUNK * 2)); test_assert(alloc_re((void *) &sp2, CHUNK, CHUNK * 2)); test_assert(alloc_re((void *) &sp3, CHUNK, CHUNK * 2)); test_assert(sp1[0] == 0x41); test_assert(sp2[0] == 0x41); test_assert(sp3[0] == 0x41); set(sp1, CHUNK * 2); set(sp2, CHUNK * 2); set(sp3, CHUNK * 2); dealloc(p1); dealloc(p2); dealloc(p3); dealloc(sp1); dealloc(sp2); dealloc(sp3); p1 = alloc_zero(CHUNK); test_assert(p1); for (ind = 0; ind < CHUNK; ++ind) test_assert(p1[ind] == 0); dealloc_null(&p1); test_assert(p1 == 0); return 0; }