CompiledCode.st
changeset 5426 eef3df49b4e8
parent 5304 5a6bdbd6e340
child 5522 754c11dfd208
--- a/CompiledCode.st	Mon Jun 26 16:35:15 2000 +0200
+++ b/CompiledCode.st	Mon Jun 26 16:36:02 2000 +0200
@@ -10,6 +10,8 @@
  hereby transferred.
 "
 
+"{ Package: 'stx:libbasic' }"
+
 ExecutableFunction variableSubclass:#CompiledCode
 	instanceVariableNames:'flags byteCode'
 	classVariableNames:'NoByteCodeSignal InvalidByteCodeSignal InvalidInstructionSignal
@@ -1111,10 +1113,13 @@
     badArgs: ;
 %}.
     (argArray isMemberOf:Array) ifFalse:[
-        "
-         arguments must be either nil or an array
-        "
-        ^ self badArgumentArray
+        (self numArgs ~~ 0
+        or:[argArray notNil]) ifTrue:[
+            "
+             arguments must be either nil or an array
+            "
+            ^ self badArgumentArray
+        ]
     ].
 
     (argArray size ~~ self numArgs) ifTrue:[
@@ -1126,8 +1131,10 @@
     
     "/ the VM only supports a limited number of arguments in sends
     "/ (currently, 15)
-    
-    ^ self tooManyArguments
+    argArray size > self class maxNumberOfArguments ifTrue:[
+        ^ self tooManyArguments
+    ].
+    ^ self primitiveFailed
 
     "
      (Float compiledMethodAt:#+) 
@@ -1555,6 +1562,6 @@
 !CompiledCode class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.74 2000-03-21 11:14:40 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.75 2000-06-26 14:36:02 cg Exp $'
 ! !
 CompiledCode initialize!