コード例 #1
0
ファイル: object.cpp プロジェクト: AndreMeira/rubinius
  ID rb_intern(const char* string) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    return reinterpret_cast<ID>(env->state()->symbol(string));
  }
コード例 #2
0
ファイル: thread.cpp プロジェクト: Red54/rubinius
  VALUE rb_thread_current(void) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();
    Thread* thread = env->state()->vm()->thread.get();

    return env->get_handle(thread);
  }
コード例 #3
0
ファイル: regexp.cpp プロジェクト: AndreMeira/rubinius
 VALUE rb_reg_new(const char *source, long len, int options) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   String *pat = String::create(env->state(), source, len);
   return rb_funcall(rb_cRegexp, rb_intern("new"), 2, env->get_handle(pat), Fixnum::from(options));
 }
コード例 #4
0
ファイル: encoding.cpp プロジェクト: Emily/rubinius
  void rb_register_transcoder(const rb_transcoder* trans) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    Transcoding::define(env->state(), (OnigTranscodingType*)trans);
  }
コード例 #5
0
ファイル: globals.cpp プロジェクト: Erreon/rubinius
  void rb_set_kcode(const char *code) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    System::vm_set_kcode(env->state(), String::create(env->state(), code));
  }
コード例 #6
0
ファイル: encoding.cpp プロジェクト: Emily/rubinius
 VALUE rb_obj_encoding(VALUE obj) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   Object* val = env->get_object(obj);
   Encoding* enc = Encoding::get_object_encoding(env->state(), val);
   return env->get_handle(enc);
 }
コード例 #7
0
ファイル: encoding.cpp プロジェクト: Emily/rubinius
  VALUE rb_enc_from_encoding(rb_encoding *enc) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    return env->get_handle(Encoding::find(env->state(), enc->name));
  }
コード例 #8
0
ファイル: string.cpp プロジェクト: driv3r/rubinius
  VALUE rb_str_length(VALUE self) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    String* string = capi_get_string(env, self);
    return LONG2FIX(string->char_size(env->state()));
  }
コード例 #9
0
ファイル: class.cpp プロジェクト: JesseChavez/rubinius
  /** @todo   Should this be a global handle? Surely not.. --rue */
  VALUE rb_singleton_class(VALUE object_handle) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    Class* sc = env->get_object(object_handle)->singleton_class(env->state());
    return env->get_handle(sc);
  }
コード例 #10
0
ファイル: string.cpp プロジェクト: driv3r/rubinius
  VALUE rb_str_dup(VALUE self) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    String* string = capi_get_string(env, self);
    return env->get_handle(string->string_dup(env->state()));
  }
コード例 #11
0
ファイル: string.cpp プロジェクト: driv3r/rubinius
  VALUE rb_str_new(const char* string, long length) {
    if(length < 0) rb_raise(rb_eArgError, "invalid string size");
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    return env->get_handle(String::create(env->state(), string, length));
  }
コード例 #12
0
ファイル: string.cpp プロジェクト: driv3r/rubinius
  void rb_str_modify(VALUE self) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    String* string = capi_get_string(env, self);
    string->unshare(env->state());
  }
コード例 #13
0
  char* rb_class2name(VALUE class_handle) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();
    Class* class_object = c_as<Class>(env->get_object(class_handle));

    return ::strdup(class_object->name()->c_str(env->state()));
  }
コード例 #14
0
 VALUE rb_class_name(VALUE class_handle) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   Class* class_object = c_as<Class>(env->get_object(class_handle));
   return env->get_handle(class_object->name()->to_str(env->state()));
 }
コード例 #15
0
ファイル: object.cpp プロジェクト: AndreMeira/rubinius
 VALUE rb_obj_freeze(VALUE hndl) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   env->get_object(hndl)->freeze(env->state());
   return hndl;
 }
コード例 #16
0
ファイル: class.cpp プロジェクト: JesseChavez/rubinius
 VALUE rb_class_of(VALUE object_handle) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   Class* class_object = env->get_object(object_handle)->class_object(env->state());
   return env->get_handle(class_object);
 }
コード例 #17
0
ファイル: float.cpp プロジェクト: JesseChavez/rubinius
 VALUE rb_float_new(double val) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   return env->get_handle(Float::create(env->state(), val));
 }
コード例 #18
0
ファイル: class.cpp プロジェクト: JesseChavez/rubinius
  VALUE rb_path_to_class(VALUE str) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();
    String* string = c_as<String>(env->get_object(str));

    return rb_path2class(string->c_str(env->state()));
  }
コード例 #19
0
ファイル: encoding.cpp プロジェクト: Emily/rubinius
  int rb_enc_find_index(const char *name) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    return Encoding::find_index(env->state(), name);
  }
コード例 #20
0
ファイル: class.cpp プロジェクト: JesseChavez/rubinius
 // MUST return the immediate object in the class field, not the real class!
 VALUE CLASS_OF(VALUE object_handle) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   Class* class_object = env->get_object(object_handle)->direct_class(env->state());
   return env->get_handle(class_object);
 }
コード例 #21
0
ファイル: encoding.cpp プロジェクト: Emily/rubinius
  void rb_declare_transcoder(const char* from, const char* to, const char* lib) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    Transcoding::declare(env->state(), from, to, lib);
  }
コード例 #22
0
ファイル: thread.cpp プロジェクト: Red54/rubinius
 VALUE rb_thread_local_aset(VALUE thread, ID id, VALUE value) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   Thread* thr = capi::c_as<Thread>(env->get_object(thread));
   return env->get_handle(thr->locals_store(env->state(), reinterpret_cast<Symbol*>(id),
                                            env->get_object(value)));
 }
コード例 #23
0
ファイル: encoding.cpp プロジェクト: Emily/rubinius
  rb_encoding* rb_utf8_encoding() {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    return Encoding::utf8_encoding(env->state())->get_encoding();
  }
コード例 #24
0
ファイル: globals.cpp プロジェクト: Erreon/rubinius
 void rb_gc_unregister_address(VALUE* address) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   capi::Handle** loc = reinterpret_cast<capi::Handle**>(address);
   env->state()->vm()->shared.del_global_handle_location(loc);
 }