1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

m68m frame_pointer patch

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2001-04-19 09:16:07 +00:00
parent b809da7b8e
commit 467183a1d5
4 changed files with 7 additions and 8 deletions

2
eval.c
View file

@ -4127,7 +4127,7 @@ stack_length(p)
alloca(0); alloca(0);
# define STACK_END (&stack_end) # define STACK_END (&stack_end)
#else #else
# if defined(__GNUC__) && defined(__i386__) # if defined(__GNUC__) && (defined(__i386__) || defined(__m68k__))
VALUE *stack_end = __builtin_frame_address(0); VALUE *stack_end = __builtin_frame_address(0);
# else # else
VALUE *stack_end = alloca(1); VALUE *stack_end = alloca(1);

4
gc.c
View file

@ -943,7 +943,7 @@ rb_gc()
alloca(0); alloca(0);
# define STACK_END (&stack_end) # define STACK_END (&stack_end)
#else #else
# if defined(__GNUC__) && defined(__i386__) # if defined(__GNUC__) && (defined(__i386__) || defined(__m68k__))
VALUE *stack_end = __builtin_frame_address(0); VALUE *stack_end = __builtin_frame_address(0);
# else # else
VALUE *stack_end = alloca(1); VALUE *stack_end = alloca(1);
@ -1023,7 +1023,7 @@ Init_stack(addr)
#if defined(__human68k__) #if defined(__human68k__)
extern void *_SEND; extern void *_SEND;
rb_gc_stack_start = _SEND; rb_gc_stack_start = _SEND;
#elif defined(__GNUC__) && defined(__i386__) #elif defined(__GNUC__) && (defined(__i386__) || defined(__m68k__))
rb_gc_stack_start = __builtin_frame_address(2); rb_gc_stack_start = __builtin_frame_address(2);
#else #else
VALUE start; VALUE start;

View file

@ -41,11 +41,10 @@ class PStore
def [](name) def [](name)
in_transaction in_transaction
value = @table[name] if @table.key? name
if value == nil
raise PStore::Error, format("undefined root name `%s'", name) raise PStore::Error, format("undefined root name `%s'", name)
end end
value @table[name]
end end
def []=(name, value) def []=(name, value)
in_transaction in_transaction

View file

@ -1439,8 +1439,7 @@ re_compile_pattern(pattern, size, bufp)
} }
range_retry: range_retry:
if (range && had_char_class) { if (range && had_char_class) {
FREE_AND_RETURN(stackb, "invalid regular expression; can't use character class as a end value of range"); FREE_AND_RETURN(stackb, "invalid regular expression; can't use character class as an end value of range");
goto invalid_pattern;
} }
PATFETCH(c); PATFETCH(c);
@ -1463,6 +1462,7 @@ re_compile_pattern(pattern, size, bufp)
PATFETCH_MBC(c); PATFETCH_MBC(c);
had_mbchar++; had_mbchar++;
} }
had_char_class = 0;
/* \ escapes characters when inside [...]. */ /* \ escapes characters when inside [...]. */
if (c == '\\') { if (c == '\\') {