--- 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!