From 53e7138bd7c84a8453337bfd03c58fd4b48ce78a Mon Sep 17 00:00:00 2001 From: otya128 Date: Fri, 23 Dec 2016 20:19:42 +0900 Subject: [PATCH] Fix CHKCALL --- SMILEBASIC/VM.d | 11 +++++++++++ SMILEBASIC/builtinfunctions.d | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/SMILEBASIC/VM.d b/SMILEBASIC/VM.d index ba47de9..f3cf3ff 100644 --- a/SMILEBASIC/VM.d +++ b/SMILEBASIC/VM.d @@ -297,6 +297,17 @@ class VM { return backTraceStack[0..traceI]; } + bool chkcall(wstring func) + { + import otya.smilebasic.builtinfunctions; + if (func in currentSlot.functions) + return true; + if (func in BuiltinFunction.builtinFunctions) + return true; + if (func in commonFunctions) + return true; + return false; + } } enum CodeType { diff --git a/SMILEBASIC/builtinfunctions.d b/SMILEBASIC/builtinfunctions.d index eefeeed..d195c2c 100644 --- a/SMILEBASIC/builtinfunctions.d +++ b/SMILEBASIC/builtinfunctions.d @@ -2246,7 +2246,7 @@ class BuiltinFunction static int CHKCALL(PetitComputer p, wstring func) { func = func.toUpper; - return (func in p.vm.currentSlot.functions) != null || (func in otya.smilebasic.builtinfunctions.BuiltinFunction.builtinFunctions) != null; + return p.vm.chkcall(func); } static int CHKLABEL(PetitComputer p, wstring label) {