Rainer, please open a Patch tracker item for your changes an submit an
SVN generated DIFF as the patch.

As for the trap, I really can't recommend anything more that "debug
it".  That's a fairly simple call, I can't see why that would trap
like that.  Use the deugger to look at what's getting returned from
RexxGetVersionInformation() to see if that information looks good.
The only other thing I might suggest is possibly changing the printf()
call to

fprintf(stderr, "%s", ptr);

But that's just a blind guess.

Rick

On Tue, Oct 21, 2008 at 2:40 PM, Rainer Tammer <[EMAIL PROTECTED]> wrote:
> Hello,
> I now got a emergency fix for the IBM XL C/C++ 9 compiler. With this fix
> I can compiler ooRexx 4.0.0 on AIX. Unfortunately I need to fix several
> things:
>
> 1. (RexxObject*) cast missing
>
> I have inserted several casts (at the moment veeeeery quick fix, several
> cast are not necessary ... but the compiler is happy )
>
> diff -r -c ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ArrayClass.cpp
> ooRexx-4.0.0-TRUNK/interpreter/classes/ArrayClass.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ArrayClass.cpp<>2008-10-21
> 08:02:42.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/interpreter/classes/ArrayClass.cpp<----->2008-10-21
> 18:56:01.000000000 +0200
> ***************
> *** 2418,2424 ****
>  {
>     ProtectedObject result;
>     comparator->sendMessage(OREF_COMPARE, left, right, result);
> !     if (result == OREF_NULL)
>     {
>         reportException(Error_No_result_object_message, OREF_COMPARE);
>     }
> --- 2418,2424 ----
>  {
>     ProtectedObject result;
>     comparator->sendMessage(OREF_COMPARE, left, right, result);
> !     if ((RexxObject*)result == OREF_NULL)
>     {
>         reportException(Error_No_result_object_message, OREF_COMPARE);
>     }
>
> ... -> See patch file
>
>
> 2. Added a header for AIX (directely, not via the configure script for now)
>
> diff -r -c
> ooRexx-4.0.0-TRUNK-ORIG/rexxapi/common/platform/unix/SysCSStream.cpp
> ooRexx-4.0.0-TRUNK/rexxapi/common/platform/unix/SysCSStream.cpp
> ***
> ooRexx-4.0.0-TRUNK-ORIG/rexxapi/common/platform/unix/SysCSStream.cpp<------>2008-10-21
> 08:00:50.000000000 +0200
> ---
> ooRexx-4.0.0-TRUNK/rexxapi/common/platform/unix/SysCSStream.cpp<--->2008-10-21
> 19:25:37.000000000 +0200
> ***************
> *** 51,57 ****
> --- 51,62 ----
>  #include <sys/ioctl.h>
>  #include <netdb.h>
>  #if !defined(__OpenBSD__)
> + #ifndef _AIX
>  #include <byteswap.h>
> + #endif
> + #ifdef _AIX
> + #include <strings.h>
> + #endif
>  #endif
>  #include <errno.h>
>  #include "SysCSStream.hpp"
> ..
> 3. commented out some pieces which have bot been updated in rexxutil.cpp
>
> diff -r -c
> ooRexx-4.0.0-TRUNK-ORIG/extensions/rexxutil/platform/unix/rexxutil.cpp
> ooRexx-4.0.0-TRUNK/extensions/rexxutil/platform/unix/rexxutil.cpp
> ***
> ooRexx-4.0.0-TRUNK-ORIG/extensions/rexxutil/platform/unix/rexxutil.cpp<---->2008-10-21
> 08:01:34.000000000 +0200
> ---
> ooRexx-4.0.0-TRUNK/extensions/rexxutil/platform/unix/rexxutil.cpp<->2008-10-21
> 19:39:06.000000000 +0200
> ***************
> *** 1151,1157 ****
>   if (options&NAME_ONLY)               /* name only?                 */
>     strcpy(ldp->Temp, ldp->truefile);  /* just copy it over          */
>   else {
> ! #ifdef AIX
>     timestamp = localtime_r(&(finfo->st_mtime),&stTimestamp); /* get the
> time info */
>  #else
>     timestamp = localtime(&(finfo->st_mtime));/* get the time info   */
> --- 1151,1157 ----
>   if (options&NAME_ONLY)               /* name only?                 */
>     strcpy(ldp->Temp, ldp->truefile);  /* just copy it over          */
>   else {
> ! #ifdef TAMMER_AIX
>     timestamp = localtime_r(&(finfo->st_mtime),&stTimestamp); /* get the
> time info */
>  #else
>     timestamp = localtime(&(finfo->st_mtime));/* get the time info   */
> ***************
> *** 3603,3609 ****
>  }
> ..
> ..
> ! #ifdef AIX
>  /*************************************************************************
>  * Function:  SysAddFuncPkg                                               *
>  *                                                                        *
> --- 3603,3609 ----
>  }
> ..
> ..
> ! #ifdef TAMEMR_AIX
>  /*************************************************************************
>  * Function:  SysAddFuncPkg                                               *
>  *                                                                        *
> ***************
> *** 5183,5189 ****
>     REXX_CLASSIC_ROUTINE(SysClearRexxMacroSpace, SysClearRexxMacroSpace),
>     REXX_CLASSIC_ROUTINE(SysLoadRexxMacroSpace,  SysLoadRexxMacroSpace),
>     REXX_CLASSIC_ROUTINE(SysSaveRexxMacroSpace,  SysSaveRexxMacroSpace),
> ! #if defined(AIX)
>     REXX_CLASSIC_ROUTINE(SysAddFuncPkg,          SysAddFuncPkg),
>     REXX_CLASSIC_ROUTINE(SysAddCmdPkg,           SysAddCmdPkg),
>     REXX_CLASSIC_ROUTINE(SysDropFuncPkg,         SysDropFuncPkg),
> --- 5183,5189 ----
>     REXX_CLASSIC_ROUTINE(SysClearRexxMacroSpace, SysClearRexxMacroSpace),
>     REXX_CLASSIC_ROUTINE(SysLoadRexxMacroSpace,  SysLoadRexxMacroSpace),
>     REXX_CLASSIC_ROUTINE(SysSaveRexxMacroSpace,  SysSaveRexxMacroSpace),
> ! #if defined(TAMMER_AIX)
>     REXX_CLASSIC_ROUTINE(SysAddFuncPkg,          SysAddFuncPkg),
>     REXX_CLASSIC_ROUTINE(SysAddCmdPkg,           SysAddCmdPkg),
>     REXX_CLASSIC_ROUTINE(SysDropFuncPkg,         SysDropFuncPkg),
>
> Are this utility functions no longer needed ??
> What is the replacement for this functions ??
>
> With this fixes applied I can start rxapi and the image can be build, but
> rexx -v core dumps after the first line.
>
> This works:
>
> # ./rexx
>
> Syntax is "rexx [-v] filename [arguments]"
> or        "rexx [-e] program_string [arguments]".
>
> This fails:
>
> # ./rexx -v
> Open Object Rexx
> --> core dump
>
> # dbx .libs/lt-rexx
> Type 'help' for help.
> [using memory image in core]
> reading symbolic information ...
>
> Segmentation fault in colval._getcolval [/usr/lib/threads/libc.a] at
> 0xd035b680 ($t1)
> 0xd035b680 (_getcolval+0x268) 89030000         lbz   r8,0x0(r3)
> (dbx) where
> colval._getcolval() at 0xd035b680
> doprnt._doprnt(??, ??, ??) at 0xd036860c
> printf.fprintf(0xf027fee0, 0x20252fc8, 0x36b6003a, 0x7f7f7f7f, 0x3,
> 0x746d6c00, 0x74, 0x2ff208e0) at 0xd0366570
> main(argc = 2, argv = 0x2ff22a30), line 113 in "rexx.cpp"
>
> Any ideas ??
>
> Bye
>  Rainer Tammer
>
>
> diff -r -c
> ooRexx-4.0.0-TRUNK-ORIG/extensions/rexxutil/platform/unix/rexxutil.cpp
> ooRexx-4.0.0-TRUNK/extensions/rexxutil/platform/unix/rexxutil.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/extensions/rexxutil/platform/unix/rexxutil.cpp
>    2008-10-21 08:01:34.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/extensions/rexxutil/platform/unix/rexxutil.cpp
> 2008-10-21 19:39:06.000000000 +0200
> ***************
> *** 1151,1157 ****
>    if (options&NAME_ONLY)               /* name only?                 */
>      strcpy(ldp->Temp, ldp->truefile);  /* just copy it over          */
>    else {
> ! #ifdef AIX
>      timestamp = localtime_r(&(finfo->st_mtime),&stTimestamp); /* get the
> time info */
>  #else
>      timestamp = localtime(&(finfo->st_mtime));/* get the time info   */
> --- 1151,1157 ----
>    if (options&NAME_ONLY)               /* name only?                 */
>      strcpy(ldp->Temp, ldp->truefile);  /* just copy it over          */
>    else {
> ! #ifdef TAMMER_AIX
>      timestamp = localtime_r(&(finfo->st_mtime),&stTimestamp); /* get the
> time info */
>  #else
>      timestamp = localtime(&(finfo->st_mtime));/* get the time info   */
> ***************
> *** 3603,3609 ****
>  }
>
>
> ! #ifdef AIX
>  /*************************************************************************
>  * Function:  SysAddFuncPkg                                               *
>  *                                                                        *
> --- 3603,3609 ----
>  }
>
>
> ! #ifdef TAMEMR_AIX
>  /*************************************************************************
>  * Function:  SysAddFuncPkg                                               *
>  *                                                                        *
> ***************
> *** 5183,5189 ****
>      REXX_CLASSIC_ROUTINE(SysClearRexxMacroSpace, SysClearRexxMacroSpace),
>      REXX_CLASSIC_ROUTINE(SysLoadRexxMacroSpace,  SysLoadRexxMacroSpace),
>      REXX_CLASSIC_ROUTINE(SysSaveRexxMacroSpace,  SysSaveRexxMacroSpace),
> ! #if defined(AIX)
>      REXX_CLASSIC_ROUTINE(SysAddFuncPkg,          SysAddFuncPkg),
>      REXX_CLASSIC_ROUTINE(SysAddCmdPkg,           SysAddCmdPkg),
>      REXX_CLASSIC_ROUTINE(SysDropFuncPkg,         SysDropFuncPkg),
> --- 5183,5189 ----
>      REXX_CLASSIC_ROUTINE(SysClearRexxMacroSpace, SysClearRexxMacroSpace),
>      REXX_CLASSIC_ROUTINE(SysLoadRexxMacroSpace,  SysLoadRexxMacroSpace),
>      REXX_CLASSIC_ROUTINE(SysSaveRexxMacroSpace,  SysSaveRexxMacroSpace),
> ! #if defined(TAMMER_AIX)
>      REXX_CLASSIC_ROUTINE(SysAddFuncPkg,          SysAddFuncPkg),
>      REXX_CLASSIC_ROUTINE(SysAddCmdPkg,           SysAddCmdPkg),
>      REXX_CLASSIC_ROUTINE(SysDropFuncPkg,         SysDropFuncPkg),
> diff -r -c ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ArrayClass.cpp
> ooRexx-4.0.0-TRUNK/interpreter/classes/ArrayClass.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ArrayClass.cpp  2008-10-21
> 08:02:42.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/interpreter/classes/ArrayClass.cpp       2008-10-21
> 18:56:01.000000000 +0200
> ***************
> *** 2418,2424 ****
>  {
>      ProtectedObject result;
>      comparator->sendMessage(OREF_COMPARE, left, right, result);
> !     if (result == OREF_NULL)
>      {
>          reportException(Error_No_result_object_message, OREF_COMPARE);
>      }
> --- 2418,2424 ----
>  {
>      ProtectedObject result;
>      comparator->sendMessage(OREF_COMPARE, left, right, result);
> !     if ((RexxObject*)result == OREF_NULL)
>      {
>          reportException(Error_No_result_object_message, OREF_COMPARE);
>      }
> diff -r -c ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ObjectClass.cpp
> ooRexx-4.0.0-TRUNK/interpreter/classes/ObjectClass.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/interpreter/classes/ObjectClass.cpp 2008-10-21
> 08:02:46.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/interpreter/classes/ObjectClass.cpp      2008-10-21
> 19:16:43.000000000 +0200
> ***************
> *** 188,194 ****
>      ProtectedObject result;
>
>      sendMessage(OREF_COMPARETO, other, result);
> !     if (result == OREF_NULL)
>      {
>          reportException(Error_No_result_object_message, OREF_COMPARETO);
>      }
> --- 188,194 ----
>      ProtectedObject result;
>
>      sendMessage(OREF_COMPARETO, other, result);
> !     if ((RexxObject*)result == OREF_NULL)
>      {
>          reportException(Error_No_result_object_message, OREF_COMPARETO);
>      }
> ***************
> *** 273,279 ****
>      // retrieve the method from the dictionary
>      RexxMethod *method_object = (RexxMethod
> *)this->behaviour->getMethodDictionary()->stringGet(method_name);
>      // this is an error if it doesn't exist
> !     if (method_object == OREF_NULL)
>      {
>          reportException(Error_No_method_name, this, method_name);
>      }
> --- 273,279 ----
>      // retrieve the method from the dictionary
>      RexxMethod *method_object = (RexxMethod
> *)this->behaviour->getMethodDictionary()->stringGet(method_name);
>      // this is an error if it doesn't exist
> !     if ((RexxObject *)method_object == OREF_NULL)
>      {
>          reportException(Error_No_method_name, this, method_name);
>      }
> ***************
> *** 548,554 ****
>      /* clear out the existing object variable pointer */
>      newObj->objectVariables = OREF_NULL;
>
> !     while (dictionary != OREF_NULL)
>      {
>          /* copy the dictionary */
>          RexxVariableDictionary *newDictionary = (RexxVariableDictionary
> *)dictionary->copy();
> --- 548,554 ----
>      /* clear out the existing object variable pointer */
>      newObj->objectVariables = OREF_NULL;
>
> !     while ((RexxObject *)dictionary != OREF_NULL)
>      {
>          /* copy the dictionary */
>          RexxVariableDictionary *newDictionary = (RexxVariableDictionary
> *)dictionary->copy();
> ***************
> *** 571,577 ****
>      /* get the top activation            */
>      RexxActivationBase *activation =
> ActivityManager::currentActivity->getTopStackFrame();
>      /* have an activation?               */
> !     if (activation != OREF_NULL)
>      {
>          RexxObject *sender = activation->getReceiver();/* get the receiving
> object          */
>          if (sender == (RexxObject *)this)  /* the same receiver?
>      */
> --- 571,577 ----
>      /* get the top activation            */
>      RexxActivationBase *activation =
> ActivityManager::currentActivity->getTopStackFrame();
>      /* have an activation?               */
> !     if ((RexxObject *)activation != OREF_NULL)
>      {
>          RexxObject *sender = activation->getReceiver();/* get the receiving
> object          */
>          if (sender == (RexxObject *)this)  /* the same receiver?
>      */
> ***************
> *** 748,754 ****
>      /* grab the method from this level   */
>      RexxMethod *method_save = this->behaviour->methodLookup(msgname);
>      /* method exists...special processing*/
> !     if (method_save != OREF_NULL && method_save->isSpecial())
>      {
>          if (method_save->isPrivate())      /* actually private method?
>      */
>          {
> --- 748,754 ----
>      /* grab the method from this level   */
>      RexxMethod *method_save = this->behaviour->methodLookup(msgname);
>      /* method exists...special processing*/
> !     if ((RexxObject *)method_save != OREF_NULL &&
> method_save->isSpecial())
>      {
>          if (method_save->isPrivate())      /* actually private method?
>      */
>          {
> ***************
> *** 756,762 ****
>              method_save = this->checkPrivate(method_save);
>          }
>          /* now process protected methods     */
> !         if (method_save != OREF_NULL && method_save->isProtected())
>          {
>              /* really a protected method         */
>              this->processProtectedMethod(msgname, method_save, arguments,
> count, result);
> --- 756,762 ----
>              method_save = this->checkPrivate(method_save);
>          }
>          /* now process protected methods     */
> !         if ((RexxObject *)method_save != OREF_NULL &&
> method_save->isProtected())
>          {
>              /* really a protected method         */
>              this->processProtectedMethod(msgname, method_save, arguments,
> count, result);
> ***************
> *** 764,770 ****
>          }
>      }
>      /* have a method                     */
> !     if (method_save != OREF_NULL)
>      {
>          method_save->run(ActivityManager::currentActivity, this, msgname,
> arguments, count, result);
>      }
> --- 764,770 ----
>          }
>      }
>      /* have a method                     */
> !     if ((RexxObject *)method_save != OREF_NULL)
>      {
>          method_save->run(ActivityManager::currentActivity, this, msgname,
> arguments, count, result);
>      }
> ***************
> *** 789,795 ****
>      ActivityManager::currentActivity->checkStackSpace();       /* have
> enough stack space?          */
>      /* go to the higher level            */
>      RexxMethod *method_save = this->superMethod(msgname, startscope);
> !     if (method_save != OREF_NULL && method_save->isProtected())
>      {
>          if (method_save->isPrivate())      /* actually private method?
>      */
>          {
> --- 789,795 ----
>      ActivityManager::currentActivity->checkStackSpace();       /* have
> enough stack space?          */
>      /* go to the higher level            */
>      RexxMethod *method_save = this->superMethod(msgname, startscope);
> !     if ((RexxObject *)method_save != OREF_NULL &&
> method_save->isProtected())
>      {
>          if (method_save->isPrivate())      /* actually private method?
>      */
>          {
> ***************
> *** 803,809 ****
>          }
>      }
>      /* have a method                     */
> !     if (method_save != OREF_NULL)
>      {
>          /* run the method                    */
>          method_save->run(ActivityManager::currentActivity, this, msgname,
> arguments, count, result);
> --- 803,809 ----
>          }
>      }
>      /* have a method                     */
> !     if ((RexxObject *)method_save != OREF_NULL)
>      {
>          /* run the method                    */
>          method_save->run(ActivityManager::currentActivity, this, msgname,
> arguments, count, result);
> ***************
> *** 850,856 ****
>      /* no method for this msgname        */
>      /* find the unknown method           */
>      RexxMethod *method_save = this->behaviour->methodLookup(OREF_UNKNOWN);
> !     if (method_save == OREF_NULL)        /* "unknown" method exists?
>    */
>      /* no unknown method - try to raise  */
>      /* a NOMETHOD condition, and if that */
>      {
> --- 850,856 ----
>      /* no method for this msgname        */
>      /* find the unknown method           */
>      RexxMethod *method_save = this->behaviour->methodLookup(OREF_UNKNOWN);
> !     if ((RexxObject *)method_save == OREF_NULL)        /* "unknown" method
> exists?          */
>      /* no unknown method - try to raise  */
>      /* a NOMETHOD condition, and if that */
>      {
> ***************
> *** 1440,1446 ****
>      RexxObject *scope = lastMethod()->getScope();    /* get the method's
> scope            */
>                                           /* get the object name variable
>    */
>      string_value = (RexxString *)this->getObjectVariable(OREF_NAME, scope);
> !     if (string_value == OREF_NULL)
>      {     /* no name?                          */
>          if (this->isBaseClass())           /* primitive object?
>     */
>          {
> --- 1440,1446 ----
>      RexxObject *scope = lastMethod()->getScope();    /* get the method's
> scope            */
>                                           /* get the object name variable
>    */
>      string_value = (RexxString *)this->getObjectVariable(OREF_NAME, scope);
> !     if ((RexxObject*)string_value == OREF_NULL)
>      {     /* no name?                          */
>          if (this->isBaseClass())           /* primitive object?
>     */
>          {
> ***************
> *** 1555,1561 ****
>          }
>      }
>
> !     if (methobj == OREF_NULL)            /* we weren't passed a method,
>     */
>      {
>          /* add a dummy method                */
>          methobj = (RexxMethod *)TheNilObject;
> --- 1555,1561 ----
>          }
>      }
>
> !     if ((RexxObject *)methobj == OREF_NULL)            /* we weren't
> passed a method,       */
>      {
>          /* add a dummy method                */
>          methobj = (RexxMethod *)TheNilObject;
> ***************
> *** 1602,1608 ****
>      /* find the MAKExxxx method          */
>      RexxMethod *method = this->behaviour->methodLookup(make_method);
>      /* have this method?                 */
> !     if (method != OREF_NULL)
>      {
>          /* Return its results                */
>          return this->sendMessage(make_method);
> --- 1602,1608 ----
>      /* find the MAKExxxx method          */
>      RexxMethod *method = this->behaviour->methodLookup(make_method);
>      /* have this method?                 */
> !     if ((RexxObject *)method != OREF_NULL)
>      {
>          /* Return its results                */
>          return this->sendMessage(make_method);
> ***************
> *** 1632,1638 ****
>      /* Get the message name.             */
>      RexxObject *message = arguments[0];  /* get the message .
>   */
>                                           /* Did we receive a message name
>   */
> !     if (message == OREF_NULL)
>      {
>          missingArgument(ARG_ONE);         /* Yes, this is an error.
>    */
>      }
> --- 1632,1638 ----
>      /* Get the message name.             */
>      RexxObject *message = arguments[0];  /* get the message .
>   */
>                                           /* Did we receive a message name
>   */
> !     if ((RexxObject *)message == OREF_NULL)
>      {
>          missingArgument(ARG_ONE);         /* Yes, this is an error.
>    */
>      }
> ***************
> *** 1665,1671 ****
>              }
>          }
>      }
> !     if (messageArray != OREF_NULL)       /* is message specified as an
> array? */
>      {
>          /* didn't get two arguments?         */
>          if (messageArray->getDimension() != 1 || messageArray->size() != 2)
> --- 1665,1671 ----
>              }
>          }
>      }
> !     if ((RexxObject *)messageArray != OREF_NULL)       /* is message
> specified as an array? */
>      {
>          /* didn't get two arguments?         */
>          if (messageArray->getDimension() != 1 || messageArray->size() != 2)
> ***************
> *** 1684,1690 ****
>          /* get the top activation            */
>          RexxActivationBase *activation =
> ActivityManager::currentActivity->getTopStackFrame();
>          /* have an activation?               */
> !         if (activation != OREF_NULL)
>          {
>              /* get the receiving object          */
>              RexxObject *sender = activation->getReceiver();
> --- 1684,1690 ----
>          /* get the top activation            */
>          RexxActivationBase *activation =
> ActivityManager::currentActivity->getTopStackFrame();
>          /* have an activation?               */
> !         if ((RexxObject *)activation != OREF_NULL)
>          {
>              /* get the receiving object          */
>              RexxObject *sender = activation->getReceiver();
> ***************
> *** 1937,1943 ****
>  RexxObject *RexxObject::getObjectVariable(RexxString *name)
>  {
>      RexxVariableDictionary *dictionary = objectVariables;
> !     while (dictionary != OREF_NULL)
>      {
>          // see if this dictionary has the variable
>          RexxObject *val = dictionary->realValue(name);
> --- 1937,1943 ----
>  RexxObject *RexxObject::getObjectVariable(RexxString *name)
>  {
>      RexxVariableDictionary *dictionary = objectVariables;
> !     while ((RexxObject *)dictionary != OREF_NULL)
>      {
>          // see if this dictionary has the variable
>          RexxObject *val = dictionary->realValue(name);
> ***************
> *** 2028,2034 ****
>  
> /******************************************************************************/
>  {
>      RexxVariableDictionary *dictionary = objectVariables;        /* get the
> head of the chain         */
> !     while (dictionary != OREF_NULL)
>      {    /* search for a scope match          */
>          /* if we've found a match, return it */
>          if (dictionary->isScope(scope))
> --- 2028,2034 ----
>  
> /******************************************************************************/
>  {
>      RexxVariableDictionary *dictionary = objectVariables;        /* get the
> head of the chain         */
> !     while ((RexxObject *)dictionary != OREF_NULL)
>      {    /* search for a scope match          */
>          /* if we've found a match, return it */
>          if (dictionary->isScope(scope))
> ***************
> *** 2054,2060 ****
>  
> /******************************************************************************/
>  {
>      RexxString *classId = this->id();                /* get the id string
>               */
> !     if (classId == OREF_NULL)            /* internal class?
>     */
>      {
>          return "unknown Class";            /* return an unknown identifier
>      */
>      }
> --- 2054,2060 ----
>  
> /******************************************************************************/
>  {
>      RexxString *classId = this->id();                /* get the id string
>               */
> !     if ((RexxObject *)classId == OREF_NULL)            /* internal class?
>                   */
>      {
>          return "unknown Class";            /* return an unknown identifier
>      */
>      }
> ***************
> *** 2071,2077 ****
>  {
>      /* get the class                     */
>      RexxClass *createClass = this->behaviourObject()->getOwningClass();
> !     if (createClass == OREF_NULL)        /* no class object?
>    */
>      {
>          return OREF_NULL;                  /* return nothing
>      */
>      }
> --- 2071,2077 ----
>  {
>      /* get the class                     */
>      RexxClass *createClass = this->behaviourObject()->getOwningClass();
> !     if ((RexxObject *)createClass == OREF_NULL)        /* no class object?
>                  */
>      {
>          return OREF_NULL;                  /* return nothing
>      */
>      }
> ***************
> *** 2162,2168 ****
>    ProtectedObject result;              /* returned result
> */\
>                                         /* do a real message send
>  */\
>    this->messageSend(OREF_##message, &operand, 1, result);
>    \
> !   if (result == OREF_NULL)             /* in an expression and need a
> result*/ \
>                                         /* need to raise an exception
>  */ \
>      reportException(Error_No_result_object_message, OREF_##message); \
>    return (RexxObject *)result;         /* return the final result
> */ \
> --- 2162,2168 ----
>    ProtectedObject result;              /* returned result
> */\
>                                         /* do a real message send
>  */\
>    this->messageSend(OREF_##message, &operand, 1, result);
>    \
> !   if ((RexxObject *)result == OREF_NULL)             /* in an expression
> and need a result*/ \
>                                         /* need to raise an exception
>  */ \
>      reportException(Error_No_result_object_message, OREF_##message); \
>    return (RexxObject *)result;         /* return the final result
> */ \
> ***************
> *** 2175,2181 ****
>    ProtectedObject result;              /* returned result
> */\
>                                         /* do a real message send
>  */\
>    this->messageSend(OREF_##message, &operand, operand == OREF_NULL ? 0 : 1,
> result); \
> !   if (result == OREF_NULL)             /* in an expression and need a
> result*/ \
>                                         /* need to raise an exception
>  */ \
>      reportException(Error_No_result_object_message, OREF_##message); \
>    return (RexxObject *)result;         /* return the final result
> */ \
> --- 2175,2181 ----
>    ProtectedObject result;              /* returned result
> */\
>                                         /* do a real message send
>  */\
>    this->messageSend(OREF_##message, &operand, operand == OREF_NULL ? 0 : 1,
> result); \
> !   if ((RexxObject *)result == OREF_NULL)             /* in an expression
> and need a result*/ \
>                                         /* need to raise an exception
>  */ \
>      reportException(Error_No_result_object_message, OREF_##message); \
>    return (RexxObject *)result;         /* return the final result
> */ \
> ***************
> *** 2379,2385 ****
>      // try for the variable value
>      RexxObject *C_self = getObjectVariable(OREF_CSELF);
>      // if we found one, validate for unwrappering
> !     if (C_self != OREF_NULL)
>      {
>          // if this is a pointer, then unwrapper the value
>          if (C_self->isInstanceOf(ThePointerClass))
> --- 2379,2385 ----
>      // try for the variable value
>      RexxObject *C_self = getObjectVariable(OREF_CSELF);
>      // if we found one, validate for unwrappering
> !     if ((RexxObject *)C_self != OREF_NULL)
>      {
>          // if this is a pointer, then unwrapper the value
>          if (C_self->isInstanceOf(ThePointerClass))
> diff -r -c
> ooRexx-4.0.0-TRUNK-ORIG/interpreter/concurrency/RexxStartDispatcher.cpp
> ooRexx-4.0.0-TRUNK/interpreter/concurrency/RexxStartDispatcher.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/interpreter/concurrency/RexxStartDispatcher.cpp
>     2008-10-21 08:02:25.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/interpreter/concurrency/RexxStartDispatcher.cpp
>  2008-10-21 19:18:08.000000000 +0200
> ***************
> *** 139,145 ****
>          if (result != NULL)          /* if return provided for
>  */
>          {
>              /* actually have a result to return? */
> !             if (program_result != OREF_NULL)
>              {
>                  /* force to a string value           */
>                  program_result = ((RexxObject
> *)program_result)->stringValue();
> --- 139,145 ----
>          if (result != NULL)          /* if return provided for
>  */
>          {
>              /* actually have a result to return? */
> !             if ((RexxObject*)program_result != OREF_NULL)
>              {
>                  /* force to a string value           */
>                  program_result = ((RexxObject
> *)program_result)->stringValue();
> ***************
> *** 152,158 ****
>              }
>          }
>                                               /* If there is a return val...
>       */
> !         if (program_result != OREF_NULL)
>          {
>              wholenumber_t return_code;
>
> --- 152,158 ----
>              }
>          }
>                                               /* If there is a return val...
>       */
> !         if ((RexxObject*)program_result != OREF_NULL)
>          {
>              wholenumber_t return_code;
>
> ***************
> *** 191,197 ****
>   */
>  void CallRoutineDispatcher::run()
>  {
> !     if (arguments != OREF_NULL)
>      {
>          // we use a null string for the name when things are called
> directly
>          routine->call(activity, OREF_NULLSTRING, arguments->data(),
> arguments->size(), result);
> --- 191,197 ----
>   */
>  void CallRoutineDispatcher::run()
>  {
> !     if ((RexxObject*)arguments != OREF_NULL)
>      {
>          // we use a null string for the name when things are called
> directly
>          routine->call(activity, OREF_NULLSTRING, arguments->data(),
> arguments->size(), result);
> ***************
> *** 217,223 ****
>
>      ProtectedObject p(routine);
>
> !     if (arguments != OREF_NULL)
>      {
>          // use the provided name for the call name
>          routine->runProgram(activity, arguments->data(), arguments->size(),
> result);
> --- 217,223 ----
>
>      ProtectedObject p(routine);
>
> !     if ((RexxObject*)arguments != OREF_NULL)
>      {
>          // use the provided name for the call name
>          routine->runProgram(activity, arguments->data(), arguments->size(),
> result);
> diff -r -c
> ooRexx-4.0.0-TRUNK-ORIG/interpreter/expression/ExpressionFunction.cpp
> ooRexx-4.0.0-TRUNK/interpreter/expression/ExpressionFunction.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/interpreter/expression/ExpressionFunction.cpp
>     2008-10-21 08:02:50.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/interpreter/expression/ExpressionFunction.cpp
>  2008-10-21 19:19:03.000000000 +0200
> ***************
> *** 96,102 ****
>      /* internal routines allowed?        */
>      if (!(this->flags&function_nointernal))
>      {
> !         if (labels != OREF_NULL)           /* have a labels table?
>      */
>          {
>                                             /* check the label table
>     */
>              OrefSet(this, this->target, (RexxInstruction
> *)labels->at(this->functionName));
> --- 96,102 ----
>      /* internal routines allowed?        */
>      if (!(this->flags&function_nointernal))
>      {
> !         if ((RexxObject*)labels != OREF_NULL)           /* have a labels
> table?              */
>          {
>                                             /* check the label table
>     */
>              OrefSet(this, this->target, (RexxInstruction
> *)labels->at(this->functionName));
> ***************
> *** 223,229 ****
>              context->externalCall(this->functionName, argcount, stack,
> OREF_FUNCTIONNAME, result);
>              break;
>      }
> !     if (result == OREF_NULL)             /* result returned?
>    */
>      {
>          /* raise an error                    */
>          if (this->functionName)
> --- 223,229 ----
>              context->externalCall(this->functionName, argcount, stack,
> OREF_FUNCTIONNAME, result);
>              break;
>      }
> !     if ((RexxObject*)result == OREF_NULL)             /* result returned?
>                  */
>      {
>          /* raise an error                    */
>          if (this->functionName)
> diff -r -c
> ooRexx-4.0.0-TRUNK-ORIG/interpreter/expression/ExpressionMessage.cpp
> ooRexx-4.0.0-TRUNK/interpreter/expression/ExpressionMessage.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/interpreter/expression/ExpressionMessage.cpp
>    2008-10-21 08:02:50.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/interpreter/expression/ExpressionMessage.cpp
> 2008-10-21 19:19:48.000000000 +0200
> ***************
> *** 132,138 ****
>              context->traceIntermediate(OREF_NULLSTRING,
> TRACE_PREFIX_ARGUMENT);
>          }
>      }
> !     if (_super == OREF_NULL)             /* no super class override?
>    */
>      {
>                                           /* issue the fast message
>    */
>          stack->send(this->messageName, argcount, result);
> --- 132,138 ----
>              context->traceIntermediate(OREF_NULLSTRING,
> TRACE_PREFIX_ARGUMENT);
>          }
>      }
> !     if ((RexxObject*)_super == OREF_NULL)             /* no super class
> override?          */
>      {
>                                           /* issue the fast message
>    */
>          stack->send(this->messageName, argcount, result);
> ***************
> *** 152,158 ****
>          stack->prefixResult(result);       /* replace top element on stack
>      */
>      }
>
> !     if (result == OREF_NULL)             /* in an expression and need a
> result*/
>      {
>                                           /* need to raise an exception
>    */
>          reportException(Error_No_result_object_message, this->messageName);
> --- 152,158 ----
>          stack->prefixResult(result);       /* replace top element on stack
>      */
>      }
>
> !     if ((RexxObject*)result == OREF_NULL)             /* in an expression
> and need a result*/
>      {
>                                           /* need to raise an exception
>    */
>          reportException(Error_No_result_object_message, this->messageName);
> ***************
> *** 277,283 ****
>      ProtectedObject result;
>
>      // now send the message the appropriate way
> !     if (_super == OREF_NULL)
>      {
>          // normal message send
>          stack->send(this->messageName, argcount + 1, result);
> --- 277,283 ----
>      ProtectedObject result;
>
>      // now send the message the appropriate way
> !     if ((RexxObject*)_super == OREF_NULL)
>      {
>          // normal message send
>          stack->send(this->messageName, argcount + 1, result);
> diff -r -c
> ooRexx-4.0.0-TRUNK-ORIG/interpreter/instructions/CallInstruction.cpp
> ooRexx-4.0.0-TRUNK/interpreter/instructions/CallInstruction.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/interpreter/instructions/CallInstruction.cpp
>    2008-10-21 08:03:06.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/interpreter/instructions/CallInstruction.cpp
> 2008-10-21 19:20:44.000000000 +0200
> ***************
> *** 147,153 ****
>        return;                          //
>    }
>    if (!(instructionFlags&call_nointernal)) {    /* internal routines
> allowed?        */
> !     if (labels != OREF_NULL)           /* have a labels table?
>  */
>                                         /* check the label table
> */
>        OrefSet(this, this->target, (RexxInstruction *)labels->at((RexxString
> *)this->name));
>      instructionFlags |= call_internal;          /* this is an internal call
>          */
> --- 147,153 ----
>        return;                          //
>    }
>    if (!(instructionFlags&call_nointernal)) {    /* internal routines
> allowed?        */
> !     if ((RexxObject*)labels != OREF_NULL)           /* have a labels
> table?              */
>                                         /* check the label table
> */
>        OrefSet(this, this->target, (RexxInstruction *)labels->at((RexxString
> *)this->name));
>      instructionFlags |= call_internal;          /* this is an internal call
>          */
> ***************
> *** 208,220 ****
>              builtin_index = RexxSource::resolveBuiltin(_name);
>              _target = OREF_NULL;              /* clear out the target
>        */
>              labels = context->getLabels();   /* get the labels table
>        */
> !             if (labels != OREF_NULL)         /* have labels in the
> program?       */
>              {
>                                               /* look up label and go to
> normal    */
>                                               /* signal processing
>       */
>                  _target = (RexxInstruction *)(labels->at(_name));
>              }
> !             if (_target != OREF_NULL)        /* found one?
>        */
>              {
>                  type = call_internal;          /* have an internal call
>         */
>              }
> --- 208,220 ----
>              builtin_index = RexxSource::resolveBuiltin(_name);
>              _target = OREF_NULL;              /* clear out the target
>        */
>              labels = context->getLabels();   /* get the labels table
>        */
> !             if ((RexxObject*)labels != OREF_NULL)         /* have labels
> in the program?       */
>              {
>                                               /* look up label and go to
> normal    */
>                                               /* signal processing
>       */
>                  _target = (RexxInstruction *)(labels->at(_name));
>              }
> !             if ((RexxObject*)_target != OREF_NULL)        /* found one?
>                      */
>              {
>                  type = call_internal;          /* have an internal call
>         */
>              }
> ***************
> *** 274,280 ****
>                  context->externalCall(_name, argcount, stack,
> OREF_ROUTINENAME, result);
>                  break;
>          }
> !         if (result != OREF_NULL)         /* result returned?
>    */
>          {
>              /* set the RESULT variable to the    */
>              /* message return value              */
> --- 274,280 ----
>                  context->externalCall(_name, argcount, stack,
> OREF_ROUTINENAME, result);
>                  break;
>          }
> !         if ((RexxObject*)result != OREF_NULL)         /* result returned?
>                  */
>          {
>              /* set the RESULT variable to the    */
>              /* message return value              */
> diff -r -c
> ooRexx-4.0.0-TRUNK-ORIG/interpreter/instructions/MessageInstruction.cpp
> ooRexx-4.0.0-TRUNK/interpreter/instructions/MessageInstruction.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/interpreter/instructions/MessageInstruction.cpp
>     2008-10-21 08:03:05.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/interpreter/instructions/MessageInstruction.cpp
>  2008-10-21 19:21:36.000000000 +0200
> ***************
> *** 221,227 ****
>              context->traceIntermediate(OREF_NULLSTRING,
> TRACE_PREFIX_ARGUMENT);
>          }
>      }
> !     if (super == OREF_NULL)              /* no super class override?
>    */
>      {
>                                           /* issue the fast message
>    */
>          stack->send(this->name, argcount, result);
> --- 221,227 ----
>              context->traceIntermediate(OREF_NULLSTRING,
> TRACE_PREFIX_ARGUMENT);
>          }
>      }
> !     if ((RexxObject*)super == OREF_NULL)              /* no super class
> override?          */
>      {
>                                           /* issue the fast message
>    */
>          stack->send(this->name, argcount, result);
> ***************
> *** 236,242 ****
>      {
>          result = _target;                  /* get the target element
>      */
>      }
> !     if (result != OREF_NULL)           /* result returned?
>  */
>      {
>          context->traceResult((RexxObject *)result);  /* trace if necessary
>                */
>          /* set the RESULT variable to the    */
> --- 236,242 ----
>      {
>          result = _target;                  /* get the target element
>      */
>      }
> !     if ((RexxObject*)result != OREF_NULL)           /* result returned?
>                */
>      {
>          context->traceResult((RexxObject *)result);  /* trace if necessary
>                */
>          /* set the RESULT variable to the    */
> diff -r -c
> ooRexx-4.0.0-TRUNK-ORIG/rexxapi/common/platform/unix/SysCSStream.cpp
> ooRexx-4.0.0-TRUNK/rexxapi/common/platform/unix/SysCSStream.cpp
> *** ooRexx-4.0.0-TRUNK-ORIG/rexxapi/common/platform/unix/SysCSStream.cpp
>    2008-10-21 08:00:50.000000000 +0200
> --- ooRexx-4.0.0-TRUNK/rexxapi/common/platform/unix/SysCSStream.cpp
> 2008-10-21 19:25:37.000000000 +0200
> ***************
> *** 51,57 ****
> --- 51,62 ----
>  #include <sys/ioctl.h>
>  #include <netdb.h>
>  #if !defined(__OpenBSD__)
> + #ifndef _AIX
>   #include <byteswap.h>
> + #endif
> + #ifdef _AIX
> + #include <strings.h>
> + #endif
>  #endif
>  #include <errno.h>
>  #include "SysCSStream.hpp"
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Oorexx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
>

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to