Report abuse

ruby.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  VALUE rbx_subtend_hidden_global(RbxSubtendHiddenGlobal type) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    /* @todo Move these to static */
    switch (type) {
    case RbxQfalse:
      return env->get_handle_global(<false immediate>);
    case RbxQtrue:
      return env->get_handle_global(<true ...>);
    case RbxQnil:
      return env->get_handle_global(<nil ...>);
    case RbxQundef:
      return env->get_handle_global(<undef ...>);
    case RbxArray:
      return env->get_handle_global(env->state()->globals.array.get());

ruby.h

1
2
3
4
5
6
7
8
9
10
11
12
/* The immediates. */

#define Qfalse                (rbx_subtend_hidden_global(RbxQfalse))
#define Qtrue                 (rbx_subtend_hidden_global(RbxQtrue))
#define Qnil                  (rbx_subtend_hidden_global(RbxQnil))
/** The undef object. NEVER EXPOSE THIS TO USER CODE. EVER. */
#define Qundef                (rbx_subtend_hidden_global(RbxQundef))

/* Global Class objects */

#define rb_cArray             (rbx_subtend_hidden_global(RbxArray))
#define rb_cBignum            (rbx_subtend_hidden_global(RbxBignum))