diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | marshal.c | 10 | ||||
-rw-r--r-- | parse.y | 12 |
3 files changed, 8 insertions, 21 deletions
@@ -1,3 +1,10 @@ +Wed Mar 23 11:44:53 2016 cremno <cremno@mail.ru> + + * marshal.c (r_long): cast to `signed char`, which is used + already, instead of SIGN_EXTEND_CHAR. + + * parse.y: SIGN_EXTEND_CHAR is no longer used. [Fix GH-1302] + Wed Mar 23 11:38:47 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> * cygwin/GNUmakefile.in (MSYS2_ARG_CONV_EXCL_PARAM): @@ -1174,19 +1174,11 @@ long_toobig(int size) STRINGIZE(SIZEOF_LONG)", given %d)", size); } -#undef SIGN_EXTEND_CHAR -#if __STDC__ -# define SIGN_EXTEND_CHAR(c) ((signed char)(c)) -#else /* not __STDC__ */ -/* As in Harbison and Steele. */ -# define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128) -#endif - static long r_long(struct load_arg *arg) { register long x; - int c = SIGN_EXTEND_CHAR(r_byte(arg)); + int c = (signed char)r_byte(arg); long i; if (c == 0) return 0; @@ -5327,18 +5327,6 @@ ripper_dispatch_delayed_token(struct parser_params *parser, int t) #include "ruby/regex.h" #include "ruby/util.h" -/* We remove any previous definition of `SIGN_EXTEND_CHAR', - since ours (we hope) works properly with all combinations of - machines, compilers, `char' and `unsigned char' argument types. - (Per Bothner suggested the basic approach.) */ -#undef SIGN_EXTEND_CHAR -#if __STDC__ -# define SIGN_EXTEND_CHAR(c) ((signed char)(c)) -#else /* not __STDC__ */ -/* As in Harbison and Steele. */ -# define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128) -#endif - #define parser_encoding_name() (current_enc->name) #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc) #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc) |