コード例 #1
0
ファイル: plugin_handler.cpp プロジェクト: aonorin/ProDBG
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);
}
コード例 #2
0
ファイル: udr_context.c プロジェクト: io7m/coreland-udoc
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;
}
コード例 #3
0
ファイル: ud_init.c プロジェクト: io7m/coreland-udoc
int
ud_new (struct udoc **udp)
{
  struct udoc *ud;
  ud = alloc_zero (sizeof (*ud));
  return !! (*udp = ud);
}
コード例 #4
0
ファイル: plugin.cpp プロジェクト: NextGenIntelligence/ProDBG
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;
}
コード例 #5
0
ファイル: core_tests.cpp プロジェクト: HardlyHaki/ProDBG
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;
        }
    });
}
コード例 #6
0
ファイル: bitvec.hpp プロジェクト: DmitryOlshansky/jsm4cpp
	static BitVec newEmpty(){
		return BitVec(alloc_zero());
	}
コード例 #7
0
ファイル: t_alloc.c プロジェクト: io7m/coreland-corelib
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;
}