[Glass] Understanding GciTsContinueWith

Iwan Vosloo iwan at reahl.org
Fri Jul 30 06:57:53 PDT 2021


Hi there,

I am trying to figure out how to use GciTsContinueWith and I don't quite 
understand the comments (see below).


I can make it continue code after an exception (such as signalled from a 
halt), but only if I pass NULL to continueWithError.

If I pass in the error (GciErrSType) obtained after, say a perform, I 
just keep getting the same error upon continuing.

Perhaps what I don't understand is the idea here - what can I replace 
the top of stack with?

I would like to understand enough to eventually be able to debug 
gemstone code (eg, step) via this interface. Can I do this via 
GciTsContinueWith?

Thank you
Iwan

/*==============================================================================
  *  GciTsContinueWith
  *
  *  result is OOP_ILLEGAL if an error was returned in *err .
  *
  *  If continueWithError is not NULL, continue execution by signalling this
  *  error and replaceTopOfStack must be OOP_ILLEGAL . In this case,
  *  top frame of stack must be AbstractException>>signal
  *  or   AbstractException >>_signalFromPrimitive .
  *
  *  Within *continueWithError, if continueWithError->exceptionObj is 
not OOP_NIL
  *  it is used to replace self in the top frame,
  *  otherwise continueWithError->number is used to construct a kind of
  *  AbstractException to replace self in the top frame.
  *  Then execution is restarted at start of top frame's method.
  *
  *  replaceTopOfStack == OOP_ILLEGAL means TopOfStack will not be changed
  */


-- 


More information about the Glass mailing list