From: <bi...@us...> - 2007-08-02 11:01:37
|
Revision: 642 http://oorexx.svn.sourceforge.net/oorexx/?rev=642&view=rev Author: bigrixx Date: 2007-08-02 04:01:32 -0700 (Thu, 02 Aug 2007) Log Message: ----------- [ oorexx-Bugs-1765994 ] Bug in comparator implementation causes a crash of ooRexx Modified Paths: -------------- interpreter-3.x/trunk/kernel/classes/ArrayClass.cpp interpreter-3.x/trunk/kernel/classes/ObjectClass.cpp interpreter-3.x/trunk/kernel/messages/DocErrorMessages.sgml interpreter-3.x/trunk/kernel/messages/rexxmsg.xml interpreter-3.x/trunk/kernel/platform/windows/winmsgtb.rc Modified: interpreter-3.x/trunk/kernel/classes/ArrayClass.cpp =================================================================== --- interpreter-3.x/trunk/kernel/classes/ArrayClass.cpp 2007-07-28 22:07:35 UTC (rev 641) +++ interpreter-3.x/trunk/kernel/classes/ArrayClass.cpp 2007-08-02 11:01:32 UTC (rev 642) @@ -2193,6 +2193,11 @@ wholenumber_t RexxArray::sortCompare(RexxObject *comparator, RexxObject *left, RexxObject *right) { RexxObject *result = comparator->sendMessage(OREF_COMPARE, left, right); + if (result == OREF_NULL) + { + reportException(Error_No_result_object_message, OREF_COMPARE); + } + wholenumber_t comparison = result->longValue(DEFAULT_DIGITS); if (comparison == NO_LONG) { Modified: interpreter-3.x/trunk/kernel/classes/ObjectClass.cpp =================================================================== --- interpreter-3.x/trunk/kernel/classes/ObjectClass.cpp 2007-07-28 22:07:35 UTC (rev 641) +++ interpreter-3.x/trunk/kernel/classes/ObjectClass.cpp 2007-08-02 11:01:32 UTC (rev 642) @@ -157,6 +157,10 @@ wholenumber_t RexxObject::compareTo(RexxObject *other ) { RexxObject *result = sendMessage(OREF_COMPARETO, other); + if (result == OREF_NULL) + { + reportException(Error_No_result_object_message, OREF_COMPARETO); + } wholenumber_t comparison = result->longValue(DEFAULT_DIGITS); if (comparison == NO_LONG) { Modified: interpreter-3.x/trunk/kernel/messages/DocErrorMessages.sgml =================================================================== --- interpreter-3.x/trunk/kernel/messages/DocErrorMessages.sgml 2007-07-28 22:07:35 UTC (rev 641) +++ interpreter-3.x/trunk/kernel/messages/DocErrorMessages.sgml 2007-08-02 11:01:32 UTC (rev 642) @@ -2480,7 +2480,7 @@ <varlistentry> <term>999</term> <listitem> -<para>Message "<emphasis>message</emphasis>" did not return a result object</para> +<para>Message "<emphasis>message</emphasis>" did not return a result</para> </listitem> </varlistentry> </variablelist> Modified: interpreter-3.x/trunk/kernel/messages/rexxmsg.xml =================================================================== --- interpreter-3.x/trunk/kernel/messages/rexxmsg.xml 2007-07-28 22:07:35 UTC (rev 641) +++ interpreter-3.x/trunk/kernel/messages/rexxmsg.xml 2007-08-02 11:01:32 UTC (rev 642) @@ -3342,7 +3342,7 @@ <Component>Rexx</Component> <Severity>Warning</Severity> <SymbolicName>Error_No_result_object_message</SymbolicName> - <Text>Message <q><Sub position="1" name="message"/></q> did not return a result object</Text> + <Text>Message <q><Sub position="1" name="message"/></q> did not return a result</Text> </SubMessage> </Subcodes> </Message> Modified: interpreter-3.x/trunk/kernel/platform/windows/winmsgtb.rc =================================================================== --- interpreter-3.x/trunk/kernel/platform/windows/winmsgtb.rc 2007-07-28 22:07:35 UTC (rev 641) +++ interpreter-3.x/trunk/kernel/platform/windows/winmsgtb.rc 2007-08-02 11:01:32 UTC (rev 642) @@ -364,7 +364,7 @@ Error_External_name_not_found_class "Unable to find external class ""&1""" Error_External_name_not_found_method "Unable to find external method ""&1""" Error_External_name_not_found_routine "Unable to find external routine ""&1""" - Error_No_result_object_message "Message ""&1"" did not return a result object" + Error_No_result_object_message "Message ""&1"" did not return a result" Error_Incorrect_method_minarg "Not enough arguments in method; &1 expected" Error_Incorrect_method_maxarg "Too many arguments in invocation of method; &1 expected" Error_Incorrect_method_noarg "Missing argument in method; argument &1 is required" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |