static void make_patterns(void) { static const char rat_pat_source[] = PATTERN; static const char an_e_pat_source[] = "[eE]"; static const char a_dot_pat_source[] = "\\."; static const char underscores_pat_source[] = "_+"; if (rat_pat) return; rat_pat = rb_reg_new(rat_pat_source, sizeof rat_pat_source - 1, 0); rb_gc_register_mark_object(rat_pat); an_e_pat = rb_reg_new(an_e_pat_source, sizeof an_e_pat_source - 1, 0); rb_gc_register_mark_object(an_e_pat); a_dot_pat = rb_reg_new(a_dot_pat_source, sizeof a_dot_pat_source - 1, 0); rb_gc_register_mark_object(a_dot_pat); underscores_pat = rb_reg_new(underscores_pat_source, sizeof underscores_pat_source - 1, 0); rb_gc_register_mark_object(underscores_pat); an_underscore = rb_usascii_str_new2("_"); rb_gc_register_mark_object(an_underscore); }
static void make_patterns(void) { static const char comp_pat0_source[] = PATTERN0; static const char comp_pat1_source[] = PATTERN1; static const char comp_pat2_source[] = PATTERN2; static const char underscores_pat_source[] = "_+"; if (comp_pat0) return; comp_pat0 = rb_reg_new(comp_pat0_source, sizeof comp_pat0_source - 1, 0); rb_gc_register_mark_object(comp_pat0); comp_pat1 = rb_reg_new(comp_pat1_source, sizeof comp_pat1_source - 1, 0); rb_gc_register_mark_object(comp_pat1); comp_pat2 = rb_reg_new(comp_pat2_source, sizeof comp_pat2_source - 1, 0); rb_gc_register_mark_object(comp_pat2); a_slash = rb_usascii_str_new2("/"); rb_gc_register_mark_object(a_slash); a_dot_and_an_e = rb_usascii_str_new2(".eE"); rb_gc_register_mark_object(a_dot_and_an_e); null_string = rb_usascii_str_new2(""); rb_gc_register_mark_object(null_string); underscores_pat = rb_reg_new(underscores_pat_source, sizeof underscores_pat_source - 1, 0); rb_gc_register_mark_object(underscores_pat); an_underscore = rb_usascii_str_new2("_"); rb_gc_register_mark_object(an_underscore); }
void Init_load(void) { #undef rb_intern #define rb_intern(str) rb_intern2((str), strlen(str)) rb_vm_t *vm = GET_VM(); static const char var_load_path[] = "$:"; ID id_load_path = rb_intern2(var_load_path, sizeof(var_load_path)-1); rb_define_hooked_variable(var_load_path, (VALUE*)vm, load_path_getter, rb_gvar_readonly_setter); rb_alias_variable(rb_intern("$-I"), id_load_path); rb_alias_variable(rb_intern("$LOAD_PATH"), id_load_path); vm->load_path = rb_ary_new(); vm->expanded_load_path = rb_ary_tmp_new(0); vm->load_path_snapshot = rb_ary_tmp_new(0); vm->load_path_check_cache = 0; rb_define_virtual_variable("$\"", get_loaded_features, 0); rb_define_virtual_variable("$LOADED_FEATURES", get_loaded_features, 0); vm->loaded_features = rb_ary_new(); vm->loaded_features_snapshot = rb_ary_tmp_new(0); vm->loaded_features_index = st_init_strtable(); rb_define_global_function("load", rb_f_load, -1); rb_define_global_function("require", rb_f_require, 1); rb_define_global_function("require_relative", rb_f_require_relative, 1); rb_define_method(rb_cModule, "autoload", rb_mod_autoload, 2); rb_define_method(rb_cModule, "autoload?", rb_mod_autoload_p, 1); rb_define_global_function("autoload", rb_f_autoload, 2); rb_define_global_function("autoload?", rb_f_autoload_p, 1); ruby_dln_librefs = rb_ary_tmp_new(0); rb_gc_register_mark_object(ruby_dln_librefs); }
/*! * Defines a class under the namespace of \a outer. * \param outer a class which contains the new class. * \param id name of the new class * \param super a class from which the new class will derive. * NULL means \c Object class. * \return the created class * \throw TypeError if the constant name \a name is already taken but * the constant is not a \c Class. * \throw NameError if the class is already defined but the class can not * be reopened because its superclass is not \a super. * \post top-level constant named \a name refers the returned class. * * \note if a class named \a name is already defined and its superclass is * \a super, the function just returns the defined class. */ VALUE rb_define_class_id_under(VALUE outer, ID id, VALUE super) { VALUE klass; if (rb_const_defined_at(outer, id)) { klass = rb_const_get_at(outer, id); if (TYPE(klass) != T_CLASS) { rb_raise(rb_eTypeError, "%s is not a class", rb_id2name(id)); } if (rb_class_real(RCLASS_SUPER(klass)) != super) { rb_name_error(id, "%s is already defined", rb_id2name(id)); } return klass; } if (!super) { rb_warn("no super class for `%s::%s', Object assumed", rb_class2name(outer), rb_id2name(id)); } klass = rb_define_class_id(id, super); rb_set_class_path_string(klass, outer, rb_id2str(id)); rb_const_set(outer, id, klass); rb_class_inherited(super, klass); rb_gc_register_mark_object(klass); return klass; }
void rb_w32_init_file(void) { rb_code_page = rb_hash_new(); /* prevent GC removing rb_code_page */ rb_gc_register_mark_object(rb_code_page); }
void Init_request_parse(VALUE nyara) { str_accept = rb_enc_str_new("Accept", strlen("Accept"), u8_encoding); rb_gc_register_mark_object(str_accept); method_override_key = rb_enc_str_new("_method", strlen("_method"), u8_encoding); OBJ_FREEZE(method_override_key); rb_const_set(nyara, rb_intern("METHOD_OVERRIDE_KEY"), method_override_key); nyara_http_methods = rb_const_get(nyara, rb_intern("HTTP_METHODS")); }
static VALUE start_stat_server(int argc, VALUE *argv, VALUE self) { VALUE pub_port; VALUE request_port; int bind_result, pub_port_int, req_port_int; char zmq_endpoint[21], zmq_request_endpoint[21]; server_instance = self; rb_scan_args(argc, argv, "02", &pub_port, &request_port); pub_port_int = FIX2INT(pub_port); req_port_int = FIX2INT(request_port); if(pub_port_int != 0 || request_port != 0) { zmq_context = zmq_ctx_new(); } if(pub_port_int != 0) { sprintf(zmq_endpoint, "tcp://127.0.0.1:%d", FIX2INT(pub_port)); zmq_publisher = zmq_socket(zmq_context, ZMQ_PUB); bind_result = zmq_bind(zmq_publisher, zmq_endpoint); if(bind_result != 0) return Qfalse; } if(req_port_int != 0) { sprintf(zmq_request_endpoint, "tcp://127.0.0.1:%d", FIX2INT(request_port)); zmq_response_socket = zmq_socket(zmq_context, ZMQ_REP); bind_result = zmq_bind(zmq_response_socket, zmq_request_endpoint); if(bind_result != 0) return Qfalse; items[0].socket = zmq_response_socket; items[0].events = ZMQ_POLLIN; } // Creates a list which aggregates messages message_list_new(); logger = get_trace_logger(); logger->newobj_trace = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_NEWOBJ, newobj_i, logger); logger->freeobj_trace = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_FREEOBJ, freeobj_i, logger); rb_gc_register_mark_object(logger->newobj_trace); rb_gc_register_mark_object(logger->freeobj_trace); create_gc_hooks(); return Qtrue; }
static void create_gc_hooks(void) { int i; logger->hooks[0] = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_GC_START, gc_start_i, logger); logger->hooks[1] = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_GC_END_MARK, gc_end_mark_i, logger); logger->hooks[2] = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_GC_END_SWEEP, gc_end_sweep_i, logger); /* mark for GC */ for (i=0; i<3; i++) rb_gc_register_mark_object(logger->hooks[i]); }
VALUE callFramework(VALUE hashReq) { VALUE callres = rb_funcall(framework, framework_mid, 1, hashReq); if (TYPE(callres)!=T_STRING) { RAWLOG_INFO1("Method call result type = %s", rb_type_to_s(callres)); return rb_str_new2("Error");//TBD: Supply html description of the error } rb_gc_register_mark_object(callres); //TBD: need to cleanup memory rb_gc(); return callres; }
void Init_fenix_file() { cFenixFile = rb_define_class_under(mFenix, "File", rb_cObject); rb_define_singleton_method(cFenixFile, "replace!", fenix_file_replace, 0); rb_define_singleton_method(cFenixFile, "expand_path", fenix_file_expand_path, -1); rb_define_singleton_method(cFenixFile, "expand_path_plain", fenix_file_expand_path_plain, -1); rb_code_page = rb_hash_new(); /* prevent GC removing rb_code_page */ rb_gc_register_mark_object(rb_code_page); }
VALUE callServeIndex(char* index_name) { VALUE callres; //RhoSetCurAppPath(index_name); callres = rb_funcall(framework, framework_mid2, 1, RhoPreparePath(rb_str_new2(index_name))); if (TYPE(callres)!=T_STRING) { RAWLOG_INFO1("Method call result type = %s", rb_type_to_s(callres)); return rb_str_new2("Error");//TBD: Supply html description of the error } rb_gc_register_mark_object(callres); //TBD: need to cleanup memory rb_gc(); return callres; }
VALUE callFramework(VALUE hashReq) { VALUE callres = rb_funcall(framework, framework_mid, 1, hashReq); if (TYPE(callres)!=T_STRING) { RAWLOG_INFO1("Method call result type = %s", rb_type_to_s(callres)); return rb_str_new2("Error");//TBD: Supply html description of the error } if ( !rho_conf_getBool("log_skip_post") ) RAWTRACE(RSTRING_PTR(callres)); rb_gc_register_mark_object(callres); //TBD: need to cleanup memory //rb_gc(); return callres; }
void Init_win32ole_event(void) { ary_ole_event = rb_ary_new(); rb_gc_register_mark_object(ary_ole_event); id_events = rb_intern("events"); cWIN32OLE_EVENT = rb_define_class("WIN32OLE_EVENT", rb_cObject); rb_define_singleton_method(cWIN32OLE_EVENT, "message_loop", fev_s_msg_loop, 0); rb_define_alloc_func(cWIN32OLE_EVENT, fev_s_allocate); rb_define_method(cWIN32OLE_EVENT, "initialize", fev_initialize, -1); rb_define_method(cWIN32OLE_EVENT, "on_event", fev_on_event, -1); rb_define_method(cWIN32OLE_EVENT, "on_event_with_outargs", fev_on_event_with_outargs, -1); rb_define_method(cWIN32OLE_EVENT, "off_event", fev_off_event, -1); rb_define_method(cWIN32OLE_EVENT, "unadvise", fev_unadvise, 0); rb_define_method(cWIN32OLE_EVENT, "handler=", fev_set_handler, 1); rb_define_method(cWIN32OLE_EVENT, "handler", fev_get_handler, 0); }
VALUE rb_define_module_id_under(VALUE outer, ID id) { VALUE module; if (rb_const_defined_at(outer, id)) { module = rb_const_get_at(outer, id); if (TYPE(module) == T_MODULE) return module; rb_raise(rb_eTypeError, "%s::%s is not a module", rb_class2name(outer), rb_obj_classname(module)); } module = rb_define_module_id(id); rb_const_set(outer, id, module); rb_set_class_path_string(module, outer, rb_id2str(id)); rb_gc_register_mark_object(module); return module; }
VALUE callServeIndex(char* index_name, VALUE hashReq) { VALUE callres; //RhoSetCurAppPath(index_name); callres = rb_funcall(framework, framework_mid2, 2, RhoPreparePath(rb_str_new2(index_name)), hashReq); if (TYPE(callres)!=T_STRING) { RAWLOG_INFO1("Method call result type = %s", rb_type_to_s(callres)); return rb_str_new2("Error");//TBD: Supply html description of the error } if ( !rho_conf_getBool("log_skip_post") ) RAWTRACE(RSTRING_PTR(callres)); rb_gc_register_mark_object(callres); //TBD: need to cleanup memory //rb_gc(); return callres; }
void RhoRubyStart() { const char* szRoot = rho_native_rhopath(); //VALUE moduleRhom; #ifdef HAVE_LOCALE_H setlocale(LC_CTYPE, ""); #endif { #ifdef ENABLE_RUBY_VM_STAT g_collect_stat = 1; #endif RUBY_INIT_STACK; ruby_init(); #if defined(WIN32) rb_w32_sysinit(NULL,NULL); #endif #if defined(DEBUG) //enable_gc_profile(); #endif //rb_funcall(rb_mGC, rb_intern("stress="), 1, Qtrue); ruby_init_loadpath(szRoot); #ifdef RHODES_EMULATOR { VALUE load_path = GET_VM()->load_path; char* app_path = malloc(strlen(szRoot)+100); rb_ary_clear(load_path); strcpy(app_path, szRoot); strcat(app_path, "app"); rb_ary_push(load_path, rb_str_new2(app_path) ); strcpy(app_path, rho_simconf_getRhodesPath()); strcat(app_path, "/lib/framework"); rb_ary_push(load_path, rb_str_new2(app_path) ); } #endif Init_strscan(); Init_sqlite3_api(); Init_GeoLocation(); Init_SyncEngine(); Init_AsyncHttp(); Init_System(); Init_Phonebook(); Init_WebView(); Init_RhoConf(); Init_Alert(); Init_SignatureCapture(); Init_RhoBluetooth(); Init_RhodesNativeViewManager(); Init_Camera(); Init_stringio(); Init_DateTimePicker(); Init_NativeBar(); Init_RhoSupport(); Init_MapView(); Init_RingtoneManager(); Init_socket(); Init_NavBar(); Init_RhoEvent(); Init_Calendar(); //TODO: RhoSimulator - load extensions dll dynamically #if !defined(RHODES_EMULATOR) && !defined(RHO_SYMBIAN) Init_Extensions(); #endif //RHODES_EMULATOR #ifdef ENABLE_RUBY_VM_STAT struct timeval start; struct timeval end; gettimeofday (&start, NULL); #endif #ifdef RHODES_EMULATOR rb_const_set(rb_cObject, rb_intern("RHODES_EMULATOR"), Qtrue); require_compiled(rb_str_new2("rhoframework"), &framework ); framework = rb_const_get(rb_cObject,rb_intern("RHO_FRAMEWORK")); #else { VALUE res = rho_ruby_disable_gc(); require_compiled(rb_str_new2("rhoframework"), &framework ); rho_ruby_enable_gc(res); } #endif //RHODES_EMULATOR if ( framework == 0 || framework == Qnil ) { RAWLOG_FATAL("RHO framework creating failed. Application will exit."); } #ifdef ENABLE_RUBY_VM_STAT gettimeofday (&end, NULL); if ( end.tv_sec > 0 ) g_require_compiled_msec += (end.tv_sec - start.tv_sec) * 1000; else g_require_compiled_msec += (end.tv_usec - start.tv_usec)/1000; #endif rb_gc_register_mark_object(framework); CONST_ID(framework_mid, "serve"); CONST_ID(framework_mid2, "serve_index"); CONST_ID(initApp_mid, "init_app"); CONST_ID(onConfigConflicts_mid, "on_config_conflicts"); CONST_ID(activateApp_mid, "activate_app"); CONST_ID(deactivateApp_mid, "deactivate_app"); CONST_ID(uiCreated_mid, "ui_created"); CONST_ID(uiDestroyed_mid, "ui_destroyed"); CONST_ID(loadServerSources_mid,"load_server_sources"); CONST_ID(loadAllSyncSources_mid,"load_all_sync_sources"); CONST_ID(resetDBOnSyncUserChanged_mid, "reset_db_on_sync_user_changed"); //moduleRhom = rb_const_get(rb_cObject, rb_intern("Rhom")); #ifdef ENABLE_RUBY_VM_STAT g_collect_stat = 0; #endif } }
void RhoRubyStart() { #ifdef HAVE_LOCALE_H setlocale(LC_CTYPE, ""); #endif { #ifdef ENABLE_RUBY_VM_STAT g_collect_stat = 1; #endif RUBY_INIT_STACK; ruby_init(); #if defined(WIN32) rb_w32_sysinit(NULL,NULL); #endif #if defined(DEBUG) //enable_gc_profile(); #endif //rb_funcall(rb_mGC, rb_intern("stress="), 1, Qtrue); ruby_init_loadpath(RhoGetRootPath()); Init_strscan(); Init_sqlite3_api(); Init_GeoLocation(); Init_SyncEngine(); Init_System(); Init_Phonebook(); Init_WebView(); Init_RhoConf(); Init_Alert(); Init_Camera(); Init_stringio(); Init_RhoSupport(); #ifdef ENABLE_RUBY_VM_STAT struct timeval start; struct timeval end; gettimeofday (&start, NULL); #endif require_compiled(rb_str_new2("rhoframework"), &framework ); #ifdef ENABLE_RUBY_VM_STAT gettimeofday (&end, NULL); if ( end.tv_sec > 0 ) g_require_compiled_msec += (end.tv_sec - start.tv_sec) * 1000; else g_require_compiled_msec += (end.tv_usec - start.tv_usec)/1000; #endif rb_gc_register_mark_object(framework); CONST_ID(framework_mid, "serve"); CONST_ID(framework_mid2, "serve_index"); #ifdef ENABLE_RUBY_VM_STAT g_collect_stat = 0; #endif } }
void RhoRubyStart() { //VALUE moduleRhom; #ifdef HAVE_LOCALE_H setlocale(LC_CTYPE, ""); #endif { #ifdef ENABLE_RUBY_VM_STAT g_collect_stat = 1; #endif RUBY_INIT_STACK; ruby_init(); #if defined(WIN32) rb_w32_sysinit(NULL,NULL); #endif #if defined(DEBUG) //enable_gc_profile(); #endif //rb_funcall(rb_mGC, rb_intern("stress="), 1, Qtrue); ruby_init_loadpath(rho_native_rhopath()); Init_strscan(); Init_sqlite3_api(); Init_GeoLocation(); Init_SyncEngine(); Init_AsyncHttp(); Init_System(); Init_Phonebook(); Init_WebView(); Init_RhoConf(); Init_Alert(); Init_SignatureTool(); Init_Camera(); Init_stringio(); Init_DateTimePicker(); Init_NativeBar(); Init_RhoSupport(); Init_MapView(); Init_RingtoneManager(); Init_socket(); Init_NavBar(); Init_Extensions(); #ifdef ENABLE_RUBY_VM_STAT struct timeval start; struct timeval end; gettimeofday (&start, NULL); #endif require_compiled(rb_str_new2("rhoframework"), &framework ); #ifdef ENABLE_RUBY_VM_STAT gettimeofday (&end, NULL); if ( end.tv_sec > 0 ) g_require_compiled_msec += (end.tv_sec - start.tv_sec) * 1000; else g_require_compiled_msec += (end.tv_usec - start.tv_usec)/1000; #endif rb_gc_register_mark_object(framework); CONST_ID(framework_mid, "serve"); CONST_ID(framework_mid2, "serve_index"); CONST_ID(initApp_mid, "init_app"); CONST_ID(activateApp_mid, "activate_app"); CONST_ID(deactivateApp_mid, "deactivate_app"); CONST_ID(loadServerSources_mid,"load_server_sources"); //moduleRhom = rb_const_get(rb_cObject, rb_intern("Rhom")); #ifdef ENABLE_RUBY_VM_STAT g_collect_stat = 0; #endif } }
void RhoRubyStart() { const char* szRoot = rho_native_rhopath(); //VALUE moduleRhom; #ifdef HAVE_LOCALE_H setlocale(LC_CTYPE, ""); #endif { #ifdef ENABLE_RUBY_VM_STAT g_collect_stat = 1; #endif RUBY_INIT_STACK; ruby_init(); #if defined(WIN32) rb_w32_sysinit(NULL,NULL); #endif #if defined(DEBUG) //enable_gc_profile(); #endif //rb_funcall(rb_mGC, rb_intern("stress="), 1, Qtrue); ruby_init_loadpath(szRoot); #if defined(RHODES_EMULATOR) || defined(APP_BUILD_CAPABILITY_MOTOROLA) || defined(OS_WP8) { VALUE load_path = GET_VM()->load_path; char* app_path = malloc(strlen(szRoot)+100); rb_ary_clear(load_path); strcpy(app_path, szRoot); #if defined(RHODES_EMULATOR) strcat(app_path, "app"); #elif defined(OS_WP8) strcat(app_path, "/apps/app"); #else strcat(app_path, "apps/app"); #endif rb_ary_push(load_path, rb_str_new2(app_path) ); #if defined(APP_BUILD_CAPABILITY_MOTOROLA) strcpy(app_path, rho_native_reruntimepath()); strcat(app_path, "lib"); #elif defined(OS_WP8) strcpy(app_path, szRoot); strcat(app_path, "/lib"); #else strcpy(app_path, rho_simconf_getRhodesPath()); strcat(app_path, "/lib/framework"); #endif rb_ary_push(load_path, rb_str_new2(app_path) ); } #endif //DO not use it! Keeps for backward compatibility with ruby extensions. Use Rho::System.isRhoSimulator #ifdef RHODES_EMULATOR rb_const_set(rb_cObject, rb_intern("RHODES_EMULATOR"), Qtrue); #endif #if !defined(OS_WP8) Init_strscan(); //+ Init_GeoLocation(); //+ Init_Phonebook(); #if !defined(OS_MACOSX) && !defined( OS_WINDOWS_DESKTOP ) && !defined(OS_WINCE) && !defined(OS_ANDROID) Init_WebView(); //+ #endif #if !defined(RHO_NO_RUBY) Init_RhoConf(); //+ #endif //#if !defined(OS_WINDOWS_DESKTOP) || defined(RHODES_EMULATOR) // Init_Alert(); //#endif #if defined(WINDOWS_PLATFORM) init_rhoext_Signature(); #else //Init_SignatureCapture(); #endif Init_RhoBluetooth(); Init_RhodesNativeViewManager(); #if !defined(OS_MACOSX) Init_Camera(); #endif Init_stringio(); //+ Init_DateTimePicker(); //#if !defined(WINDOWS_PLATFORM) && !defined(RHODES_EMULATOR) && !defined(OS_ANDROID) && !defined(OS_MACOSX) // Init_NativeBar(); //#endif Init_RhoSupport(); //+ Init_MapView(); Init_RingtoneManager(); Init_socket(); //+ //#if !defined(WINDOWS_PLATFORM) && !defined(RHODES_EMULATOR) && !defined(OS_MACOSX) // Init_NavBar(); //#endif Init_RhoEvent(); Init_Calendar(); //#if !defined(OS_WINDOWS_DESKTOP) && !defined(RHODES_EMULATOR) && ! defined(OS_WINCE) // Init_Alert(); //#endif #if defined(OS_MACOSX) #ifndef RHO_DISABLE_OLD_CAMERA_SIGNATURE_API Init_Camera(); Init_SignatureCapture(); #endif #endif #if defined(OS_ANDROID) #ifndef RHO_DISABLE_OLD_CAMERA_SIGNATURE_API Init_SignatureCapture(); #endif #endif //TODO: RhoSimulator - load extensions dll dynamically #if !defined(RHO_SYMBIAN) Init_Extensions(); #endif //RHO_SYMBIAN #else // OS_WP8 is set Init_strscan(); Init_GeoLocation(); Init_NavBar(); Init_RhoSupport(); Init_RhoConf(); Init_Alert(); Init_socket(); Init_stringio(); Init_Extensions(); #endif //OS_WP8 extensions_loaded = 1; if ( rho_rcclient_have_rhoconnect_client() ) { rb_const_set(rb_cObject, rb_intern("RHOCONNECT_CLIENT_PRESENT"), Qtrue); } #if defined(APP_BUILD_CAPABILITY_MOTOROLA) rb_require("rhomotoapi"); #endif //APP_BUILD_CAPABILITY_MOTOROLA #ifdef ENABLE_RUBY_VM_STAT struct timeval start; struct timeval end; gettimeofday (&start, NULL); #endif #ifdef RHODES_EMULATOR require_compiled(rb_str_new2("rhoframework"), &framework ); framework = rb_const_get(rb_cObject,rb_intern("RHO_FRAMEWORK")); #else { VALUE res = rho_ruby_disable_gc(); require_compiled(rb_str_new2("rhoframework"), &framework ); rho_ruby_enable_gc(res); } #endif //RHODES_EMULATOR if ( framework == 0 || framework == Qnil ) { RAWLOG_FATAL("RHO framework creating failed. Application will exit."); } #ifdef ENABLE_RUBY_VM_STAT gettimeofday (&end, NULL); if ( end.tv_sec > 0 ) g_require_compiled_msec += (end.tv_sec - start.tv_sec) * 1000; else g_require_compiled_msec += (end.tv_usec - start.tv_usec)/1000; #endif rb_gc_register_mark_object(framework); CONST_ID(framework_mid, "serve"); CONST_ID(framework_mid2, "serve_index"); CONST_ID(initApp_mid, "init_app"); CONST_ID(onConfigConflicts_mid, "on_config_conflicts"); CONST_ID(activateApp_mid, "activate_app"); CONST_ID(deactivateApp_mid, "deactivate_app"); CONST_ID(uiCreated_mid, "ui_created"); CONST_ID(uiDestroyed_mid, "ui_destroyed"); CONST_ID(loadServerSources_mid,"load_server_sources"); CONST_ID(loadAllSyncSources_mid,"load_all_sync_sources"); CONST_ID(resetDBOnSyncUserChanged_mid, "reset_db_on_sync_user_changed"); //moduleRhom = rb_const_get(rb_cObject, rb_intern("Rhom")); #ifdef ENABLE_RUBY_VM_STAT g_collect_stat = 0; #endif } }
void rho_ruby_holdValue(VALUE val) { rb_gc_register_mark_object(val); }
void Init_glib_io_channel(void) { VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_IO_CHANNEL, "IOChannel", mGLib); rb_include_module(RG_TARGET_NAMESPACE, rb_mEnumerable); id_call = rb_intern("call"); id_puts = rb_intern("puts"); id_unpack = rb_intern("unpack"); default_rs = rb_str_new_cstr("\n"); #ifdef HAVE_RB_GC_REGISTER_MARK_OBJECT rb_gc_register_mark_object(default_rs); #else rb_global_variable(&default_rs); #endif RG_DEF_METHOD(initialize, -1); RG_DEF_SMETHOD(open, -1); RG_DEF_METHOD(fileno, 0); RG_DEF_ALIAS("to_i", "fileno"); RG_DEF_METHOD(read, -1); RG_DEF_METHOD(readchar, 0); RG_DEF_METHOD(getc, 0); RG_DEF_METHOD(readline, -1); RG_DEF_METHOD(gets, -1); RG_DEF_METHOD(each, -1); RG_DEF_ALIAS("each_line", "each"); RG_DEF_METHOD(each_char, 0); RG_DEF_METHOD(write, 1); RG_DEF_METHOD(printf, -1); RG_DEF_METHOD(print, -1); RG_DEF_METHOD(puts, -1); RG_DEF_METHOD(putc, 1); RG_DEF_METHOD(flush, 0); RG_DEF_METHOD(seek, -1); RG_DEF_METHOD(set_pos, 1); RG_DEF_METHOD(close, -1); RG_DEF_METHOD(create_watch, 1); RG_DEF_METHOD(add_watch, 1); RG_DEF_METHOD(buffer_size, 0); RG_DEF_METHOD(set_buffer_size, 1); RG_DEF_METHOD(buffer_condition, 0); RG_DEF_METHOD(flags, 0); RG_DEF_METHOD(set_flags, 1); RG_DEF_METHOD(buffered, 0); RG_DEF_METHOD(set_buffered, 1); RG_DEF_METHOD(encoding, 0); RG_DEF_METHOD(set_encoding, 1); /* GSeekType */ rb_define_const(RG_TARGET_NAMESPACE, "SEEK_CUR", INT2NUM(G_SEEK_CUR)); rb_define_const(RG_TARGET_NAMESPACE, "SEEK_SET", INT2NUM(G_SEEK_SET)); rb_define_const(RG_TARGET_NAMESPACE, "SEEK_END", INT2NUM(G_SEEK_END)); /* GIOStatus */ rb_define_const(RG_TARGET_NAMESPACE, "STATUS_ERROR", INT2NUM(G_IO_STATUS_ERROR)); rb_define_const(RG_TARGET_NAMESPACE, "STATUS_NORMAL", INT2NUM(G_IO_STATUS_NORMAL)); rb_define_const(RG_TARGET_NAMESPACE, "STATUS_EOF", INT2NUM(G_IO_STATUS_EOF)); rb_define_const(RG_TARGET_NAMESPACE, "STATUS_AGAIN", INT2NUM(G_IO_STATUS_AGAIN)); /* GIOCondition */ /* Deprecated. Just for bacakward compatibility. Use * GLib::IOCondition::* instead. */ G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, G_TYPE_IO_CONDITION, "G_IO_"); /* GIOFlags */ rb_define_const(RG_TARGET_NAMESPACE, "FLAG_APPEND", INT2NUM(G_IO_FLAG_APPEND)); rb_define_const(RG_TARGET_NAMESPACE, "FLAG_NONBLOCK", INT2NUM(G_IO_FLAG_NONBLOCK)); rb_define_const(RG_TARGET_NAMESPACE, "FLAG_READABLE", INT2NUM(G_IO_FLAG_IS_READABLE)); rb_define_const(RG_TARGET_NAMESPACE, "FLAG_WRITEABLE", INT2NUM(G_IO_FLAG_IS_WRITEABLE)); rb_define_const(RG_TARGET_NAMESPACE, "FLAG_IS_SEEKABLE", INT2NUM(G_IO_FLAG_IS_SEEKABLE)); rb_define_const(RG_TARGET_NAMESPACE, "FLAG_MASK", INT2NUM(G_IO_FLAG_MASK)); rb_define_const(RG_TARGET_NAMESPACE, "FLAG_GET_MASK", INT2NUM(G_IO_FLAG_GET_MASK)); rb_define_const(RG_TARGET_NAMESPACE, "FLAG_SET_MASK", INT2NUM(G_IO_FLAG_SET_MASK)); }