Revision: 3634 http://trac.macosforge.org/projects/ruby/changeset/3634 Author: lsansonetti@apple.com Date: 2010-02-26 15:39:57 -0800 (Fri, 26 Feb 2010) Log Message: ----------- make sure the parser does not emit binary strings as symbols + misc cleanup Modified Paths: -------------- MacRuby/branches/icu/include/ruby/ruby.h MacRuby/branches/icu/parse.y MacRuby/branches/icu/string.c MacRuby/branches/icu/symbol.c Modified: MacRuby/branches/icu/include/ruby/ruby.h =================================================================== --- MacRuby/branches/icu/include/ruby/ruby.h 2010-02-26 11:11:53 UTC (rev 3633) +++ MacRuby/branches/icu/include/ruby/ruby.h 2010-02-26 23:39:57 UTC (rev 3634) @@ -909,7 +909,6 @@ VALUE rb_id2str(ID); VALUE rb_name2sym(const char *); const char *rb_sym2name(VALUE sym); -VALUE rb_sym2str(VALUE sym); static inline const char *rb_id2name(ID val) Modified: MacRuby/branches/icu/parse.y =================================================================== --- MacRuby/branches/icu/parse.y 2010-02-26 11:11:53 UTC (rev 3633) +++ MacRuby/branches/icu/parse.y 2010-02-26 23:39:57 UTC (rev 3634) @@ -269,7 +269,7 @@ // TODO: we should probably mimic what 1.9 does here and use the right/given // encoding instead of always UTF8. # define UTF8_ENC() (NULL) -#define __new_tmp_str(p, n) (rb_str_new(p, n)) +# define __new_tmp_str(p, n) (rb_str_new(p, n)) # define STR_NEW(p,n) __new_tmp_str(p, n) # define STR_NEW0() __new_tmp_str(0, 0) # define STR_NEW2(p) __new_tmp_str(p, strlen(p)) @@ -283,7 +283,7 @@ # define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),parser->enc) #endif #if WITH_OBJC -# define STR_ENC(m) (parser->enc) +# define STR_ENC(m) (NULL) # define ENC_SINGLE(cr) (1) #else # define STR_ENC(m) ((m)?parser->enc:rb_usascii_encoding()) Modified: MacRuby/branches/icu/string.c =================================================================== --- MacRuby/branches/icu/string.c 2010-02-26 11:11:53 UTC (rev 3633) +++ MacRuby/branches/icu/string.c 2010-02-26 23:39:57 UTC (rev 3634) @@ -203,7 +203,7 @@ NEWOBJ(str, rb_str_t); str->basic.flags = 0; str->basic.klass = klass; - str->encoding = rb_encodings[ENCODING_BINARY]; + str->encoding = rb_encodings[ENCODING_UTF8]; str->capacity_in_bytes = 0; str->length_in_bytes = 0; str->data.bytes = NULL; @@ -1037,7 +1037,7 @@ { switch (TYPE(str)) { case T_SYMBOL: - str = rb_sym2str(str); + str = rb_sym_to_s(str); break; case T_STRING: Modified: MacRuby/branches/icu/symbol.c =================================================================== --- MacRuby/branches/icu/symbol.c 2010-02-26 11:11:53 UTC (rev 3633) +++ MacRuby/branches/icu/symbol.c 2010-02-26 23:39:57 UTC (rev 3634) @@ -169,15 +169,9 @@ } VALUE -rb_sym2str(VALUE sym) -{ - return (VALUE)RSYM(sym)->str; -} - -VALUE rb_sym_to_s(VALUE sym) { - return rb_str_dup(rb_sym2str(sym)); + return rb_str_dup((VALUE)RSYM(sym)->str); } const char *