- Timestamp:
- Jul 9, 2020, 8:51:43 AM (4 years ago)
- Location:
- EcnlProtoTool/trunk/mruby-2.1.1
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/mruby-2.1.1/mrbgems/mruby-symbol-ext/src/symbol.c
r331 r439 2 2 #include <mruby/khash.h> 3 3 #include <mruby/array.h> 4 5 typedef struct symbol_name { 6 size_t len; 7 const char *name; 8 } symbol_name; 4 #include <mruby/string.h> 9 5 10 6 /* … … 23 19 * :wait2, :$>] 24 20 */ 21 #ifdef MRB_ENABLE_ALL_SYMBOLS 25 22 static mrb_value 26 23 mrb_sym_all_symbols(mrb_state *mrb, mrb_value self) … … 30 27 31 28 for (i=1, lim=mrb->symidx+1; i<lim; i++) { 32 mrb_ary_push(mrb, ary, mrb_symbol_value(i)); 29 mrb_sym sym = i<<1; 30 mrb_ary_push(mrb, ary, mrb_symbol_value(sym)); 33 31 } 34 32 35 33 return ary; 36 34 } 35 #endif 37 36 38 37 /* … … 46 45 { 47 46 mrb_int len; 48 mrb_sym2name_len(mrb, mrb_symbol(self), &len); 47 #ifdef MRB_UTF8_STRING 48 mrb_int byte_len; 49 const char *name = mrb_sym_name_len(mrb, mrb_symbol(self), &byte_len); 50 len = mrb_utf8_strlen(name, byte_len); 51 #else 52 mrb_sym_name_len(mrb, mrb_symbol(self), &len); 53 #endif 49 54 return mrb_fixnum_value(len); 50 55 } … … 54 59 { 55 60 struct RClass *s = mrb->symbol_class; 61 #ifdef MRB_ENABLE_ALL_SYMBOLS 56 62 mrb_define_class_method(mrb, s, "all_symbols", mrb_sym_all_symbols, MRB_ARGS_NONE()); 63 #endif 57 64 mrb_define_method(mrb, s, "length", mrb_sym_length, MRB_ARGS_NONE()); 58 65 mrb_define_method(mrb, s, "size", mrb_sym_length, MRB_ARGS_NONE());
Note:
See TracChangeset
for help on using the changeset viewer.