diff --git a/base.c b/base.c index 23b1a892..a83c6826 100644 --- a/base.c +++ b/base.c @@ -425,6 +425,7 @@ ctr_object* ctr_object_case_do( ctr_object* myself, ctr_argument* argumentList ) * ✎ write: y, stop. */ ctr_object* ctr_object_message( ctr_object* myself, ctr_argument* argumentList ) { + //@important! we use a List because message+arguments would exceed argument limit! ctr_object* message = ctr_internal_cast2string( argumentList->object ); ctr_object* arr = argumentList->next->object; if ( arr->info.type != CTR_OBJECT_TYPE_OTARRAY ) { diff --git a/world.c b/world.c index 52faf302..456db2b7 100644 --- a/world.c +++ b/world.c @@ -1105,6 +1105,7 @@ ctr_object* ctr_send_message(ctr_object* receiverObject, char* message, long vle mesgArgument = (ctr_argument*) ctr_heap_allocate( sizeof( ctr_argument ) ); mesgArgument->object = ctr_build_string(message, vlen); mesgArgument->next = argumentList; + //@important! static argument signatures because this is direct 1-to-1 map on actual methods! Don't be tempted to change to list! if (argCount == 0 || argCount > 3) { returnValue = ctr_send_message(receiverObject, CTR_DICT_RESPOND_TO, strlen(CTR_DICT_RESPOND_TO), mesgArgument); } else if (argCount == 1) {