The FileNameBuffer class uses the internal reportException() function to
raise out of memory errors. This function will only work from normal
interpreter code. If things are running in an external native function or
method, there are FileNameBuffer subclasses (RoutineFileNameBuffer and
MethodFileNameBuffer) required a current context for the constructor. These
subclasses use the new ThrowException APIs to raise the error so they will
work from the external ones.

There's also one more subclass that's used in a couple of gray areas. There
are a few pieces off code that need to use a FileNameBuffer, but can be
called by either internal or external code. For that case, There is an
AutoFileNameBuffer class. The constructors for this class require another
FileNameBuffer (or subclass) instance. If an out of memory condition
occurs, it will used the provided buffer object to raise the error


On Sun, Mar 3, 2019 at 1:43 PM Erich Steinböck <>

> The FileNameBuffer class says "This can only be used within code that runs
> while the interpreter has control."
> Under which circumstances / in which part of our code base is using
> FileNameBuffer prohibited?
> _______________________________________________
> Oorexx-devel mailing list
Oorexx-devel mailing list

Reply via email to