void objc_register_all_classes(struct objc_abi_symtab* symtab) { uint_fast32_t i; for (i = 0; i < symtab->cls_def_cnt; i++) { struct objc_abi_class* cls = (struct objc_abi_class*)symtab->defs[i]; register_class(cls); register_selectors(cls); register_selectors((struct objc_abi_class*)object_getClass((id)cls)); } for (i = 0; i < symtab->cls_def_cnt; i++) { Class cls = (Class)symtab->defs[i]; if (has_load(cls)) { setup_class(cls); if (cls->info & OBJC_CLASS_INFO_SETUP) call_load(cls); else { if (load_queue == NULL) load_queue = malloc(sizeof(Class)); else load_queue = realloc(load_queue, sizeof(Class) * (load_queue_cnt + 1)); if (load_queue == NULL) OBJC_ERROR( "Not enough memory for load " "queue!"); load_queue[load_queue_cnt++] = cls; } } else cls->info |= OBJC_CLASS_INFO_LOADED; } /* Process load queue */ for (i = 0; i < load_queue_cnt; i++) { setup_class(load_queue[i]); if (load_queue[i]->info & OBJC_CLASS_INFO_SETUP) { call_load(load_queue[i]); load_queue_cnt--; if (load_queue_cnt == 0) { free(load_queue); load_queue = NULL; continue; } load_queue[i] = load_queue[load_queue_cnt]; load_queue = realloc(load_queue, sizeof(Class) * load_queue_cnt); if (load_queue == NULL) OBJC_ERROR("Not enough memory for load queue!"); } } }
bool legacy_image_device_base::finish_load() { bool err = IMAGE_INIT_PASS; if (m_is_loading) { image_checkhash(); if (has_been_created() && m_config.get_legacy_config_fct(DEVINFO_FCT_IMAGE_CREATE)!=NULL) { err = call_create(m_create_format, m_create_args); if (err) { if (!m_err) m_err = IMAGE_ERROR_UNSPECIFIED; } } else { /* using device load */ err = call_load(); if (err) { if (!m_err) m_err = IMAGE_ERROR_UNSPECIFIED; } } } m_is_loading = FALSE; m_create_format = 0; m_create_args = NULL; m_init_phase = FALSE; return err; }
image_init_result device_image_interface::finish_load() { image_init_result err = image_init_result::PASS; if (m_is_loading) { image_checkhash(); if (m_created) { err = call_create(m_create_format, m_create_args); if (err != image_init_result::PASS) { if (!m_err) m_err = IMAGE_ERROR_UNSPECIFIED; } } else { // using device load err = call_load(); if (err != image_init_result::PASS) { if (!m_err) m_err = IMAGE_ERROR_UNSPECIFIED; } } } m_is_loading = false; m_create_format = 0; m_create_args = nullptr; m_init_phase = false; return err; }
bool device_image_interface::finish_load() { bool err = IMAGE_INIT_PASS; if (m_is_loading) { image_checkhash(); if (has_been_created()) { err = call_create(m_create_format, m_create_args); if (err) { if (!m_err) m_err = IMAGE_ERROR_UNSPECIFIED; } } else { /* using device load */ err = call_load(); if (err) { if (!m_err) m_err = IMAGE_ERROR_UNSPECIFIED; } } } m_is_loading = FALSE; m_create_format = 0; m_create_args = NULL; m_init_phase = FALSE; return err; }
/* Load the main library */ void load_main(interp_core_type *interp) { object_type *result=0; result=call_load(interp, "lib/main.scm"); /* this is not a good test */ if(result!=true) { fail("There was a problem loading system libraries"); } }
static void call_load(Class cls) { if (cls->info & OBJC_CLASS_INFO_LOADED) return; if (cls->superclass != Nil) call_load(cls->superclass); call_method(cls, "load"); cls->info |= OBJC_CLASS_INFO_LOADED; }
/* execution of a top-level program */ void top_level_program(interp_core_type *interp, char* filename) { object_type *result=0; load_main(interp); result=call_load(interp, filename); if(interp->error==1) { fprintf(stderr, "There was an error executing script\n"); exit(-1); } }
void main(void) { if (!file_walk(CALL_L0, "/bin/fudge")) return; if (!file_walk(CALL_L1, "/mod/")) return; file_open(CALL_PI); file_open(CALL_L0); if (resolve(CALL_PI)) call_load(CALL_PI); file_close(CALL_L0); file_close(CALL_PI); }
bool device_image_interface::finish_load() { bool err = IMAGE_INIT_PASS; if (m_is_loading) { image_checkhash(); if (m_from_swlist) call_display_info(); if (has_been_created() )// && get_legacy_fct(DEVINFO_FCT_IMAGE_CREATE) != NULL) { err = call_create(m_create_format, m_create_args); if (err) { if (!m_err) m_err = IMAGE_ERROR_UNSPECIFIED; } } else { /* using device load */ err = call_load(); if (err) { if (!m_err) m_err = IMAGE_ERROR_UNSPECIFIED; } } } m_is_loading = FALSE; m_create_format = 0; m_create_args = NULL; m_init_phase = FALSE; return err; }
bool cassette_image_device::call_create(int format_type, option_resolution *format_options) { return call_load(); }
image_init_result printer_image_device::call_create(int format_type, util::option_resolution *format_options) { return call_load(); }