#1074 ReleaseLocalReference() causes ooRexx to abend

Rick McGuire
APIs (66)
0 up votes | 0 down votes | 0%

While working on BSF4ooRexx I added a ReleaseLocalReference() in an external Rexx function for Rexx
(String) objects retrieved (using ArrayAt()) from the passed array (using ARGLIST to get the
argument array in the external function).

This seems to work for many Rexx programs that invoke that external Rexx function in BSF4ooRexx,
however, if running a certain Rexx application, unexplainably ooRexx abends (Window popup, title:
\"Open Object Rexx Interface\", message - translated from German to English - \"Open Object Rexx
Interface found a problem and needs to be ended\").

This occurs while calling the ReleaseLocalReference()-API on a Rexx string object retrieved from the
aforementioned array. This is also the only place in the entire program that applies

ooRexx 4.1.1 GA, 32-bit, Windows (XP SP3)

Will upload the zip-archive to duplicate this behavriou with this bug report. If the zip-archive is too big, then one could fetch the archive from: http://wi.wu.ac.at/rgf/rexx/tmp/debug/


  • Rick McGuire
    Rick McGuire

    The contents of this zip file are not a functional example that can be used to debug this problem. The following error occurs:

    2932 - ::requires rgf_util2.rex
    Error 43 running C:\ORexxDev\bugs\3529966\testReleaseLocalReference\ooRexxTry.rx
    j line 2932: Routine not found
    Error 43.901: Could not find routine "RGF_UTIL2.REX" for ::REQUIRES

  • Rick McGuire
    Rick McGuire

    Committed revision 7805.

    Note, based on the call patterns I was seeing in the debugger, your use of ReleaseLocalReference is completely unneeded. You really only need to do that when you wish to allow an object to become eligible for garbage collection. This will not happen in the case of objects taken from the call list, so all you are doing is adding additional overhead.



Cancel   Add attachments