Sha256: 428be70cc2fea64cc6ba4734b8100bab332f550cb6a9a42dfd05e45c695466bc
Contents?: true
Size: 1019 Bytes
Versions: 1
Compression:
Stored size: 1019 Bytes
Contents
#ifndef ruby_internal_method__h_ #define ruby_internal_method__h_ #include <ruby.h> #ifdef RUBY_VM #include "method.h" #endif #include "internal/node/ruby_internal_node.h" #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE (!FALSE) #endif struct METHOD { VALUE recv; VALUE rclass; ID id; rb_method_entry_t me; }; static void bm_mark(void *ptr) { struct METHOD *data = ptr; rb_gc_mark(data->rclass); rb_gc_mark(data->recv); rb_mark_method_entry(&data->me); } static void bm_free(void *ptr) { struct METHOD *data = ptr; rb_method_definition_t *def = data->me.def; if (def->alias_count == 0) xfree(def); else if (def->alias_count > 0) def->alias_count--; xfree(ptr); } static size_t bm_memsize(const void *ptr) { return ptr ? sizeof(struct METHOD) : 0; } static const rb_data_type_t method_data_type = { "method", bm_mark, bm_free, bm_memsize, }; #define METHOD_OCLASS(m) m->klass #define METHOD_RCLASS(m) m->rclass #endif
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruby-internal-0.7.3 | ext/internal/method/internal_method.h |