Example #1
0
OBJCRT_EXPORT id objc_get_class(const char* cls) {
    return (id)objc_lookup_class(cls);
}
Example #2
0
void
objc_init_static_instances(struct objc_abi_symtab *symtab)
{
    struct objc_abi_static_instances **si;
    size_t i;

    /* Check if the class for a static instance became available */
    for (i = 0; i < static_instances_cnt; i++) {
        Class cls = objc_lookup_class(static_instances[i]->class_name);

        if (cls != Nil) {
            id *instances;

            for (instances = static_instances[i]->instances;
                *instances != nil; instances++)
                _object_setClass(*instances, cls);

            static_instances_cnt--;

            if (static_instances_cnt == 0) {
                free(static_instances);
                static_instances = NULL;
                continue;
            }

            static_instances[i] =
                static_instances[static_instances_cnt];

            static_instances = realloc(static_instances,
                sizeof(struct objc_abi_static_instances*) *
                static_instances_cnt);

            if (static_instances == NULL)
                OBJC_ERROR("Not enough memory for list of "
                    "static instances!");
        }
    }

    si = (struct objc_abi_static_instances**)
        symtab->defs[symtab->cls_def_cnt + symtab->cat_def_cnt];

    if (si == NULL)
        return;

    for (; *si != NULL; si++) {
        Class cls = objc_lookup_class((*si)->class_name);

        if (cls != Nil) {
            id *instances;

            for (instances = (*si)->instances; *instances != nil;
                instances++)
                _object_setClass(*instances, cls);
        } else {
            if (static_instances == NULL)
                static_instances = malloc(sizeof(
                    struct objc_abi_static_instances*));
            else
                static_instances = realloc(static_instances,
                    sizeof(struct objc_abi_static_instances*) *
                    (static_instances_cnt + 1));

            if (static_instances == NULL)
                OBJC_ERROR("Not enough memory for list of "
                    "static instances!");

            static_instances[static_instances_cnt++] = *si;
        }
    }
}
Example #3
0
id objc_getClass(const char* name) {
    return objc_lookup_class(name);
}
Example #4
0
id
objc_lookUpClass(const char *name)
{
  // TODO: Check these are the right way around.
  return (id) objc_lookup_class(name);
}