[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-smalltalk] Fun/Crashes with newer GCC on Debian
From: |
Holger Hans Peter Freyther |
Subject: |
Re: [Help-smalltalk] Fun/Crashes with newer GCC on Debian |
Date: |
Fri, 11 Oct 2013 15:08:04 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Oct 11, 2013 at 08:08:57AM +0200, Holger Hans Peter Freyther wrote:
> pools.st:
> UndefinedObject>>#executeStatements.
diff --git a/libgst/gst-parse.c b/libgst/gst-parse.c
index 1ad0512..91cb03a 100644
--- a/libgst/gst-parse.c
+++ b/libgst/gst-parse.c
@@ -1961,7 +1961,10 @@ parse_compile_time_constant (gst_parser *p)
return _gst_make_method (&location, loc(p, 0),
NULL, temps, NULL, statements, NULL,
- _gst_current_parser->currentClass,
+ IS_NIL(_gst_current_parser->currentClass)
+ ?
+ _gst_undefined_object_class :
+ _gst_current_parser->currentClass,
_gst_nil_oop,
false);
}
[
##(Exception printNl)
]
> exceptions.st:
>
> NIL is casted to a method context in disable_non_unwind_contexts.
> I have added this. Judging from the loop above this patch, I assume
> that newContextOOP will in deed be NIL at the bottom of the stack.
>
> @@ -1232,13 +1232,15 @@ disable_non_unwind_contexts (OOP returnContextOOP)
> }
>
> /* Skip any disabled methods. */
> - while UNCOMMON (CONTEXT_FLAGS (newContext)
> - == (MCF_IS_METHOD_CONTEXT | MCF_IS_DISABLED_CONTEXT))
> + while UNCOMMON (/*!IS_NIL(newContextOOP) &&*/ (CONTEXT_FLAGS (newContext)
> + == (MCF_IS_METHOD_CONTEXT | MCF_IS_DISABLED_CONTEXT)))
> {
> oldContext = newContext;
>
> /* Descend in the chain... */
> newContextOOP = oldContext->parentContext;
> + if (IS_NIL(newContextOOP))
> + break;
I need to return.. maybe return false? I don't know...
Re: [Help-smalltalk] Fun/Crashes with newer GCC on Debian, Paolo Bonzini, 2013/10/12