help-smalltalk
[Top][All Lists]
Advanced

[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...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]