mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 14:54:07 +10:00
WIP return keyword, read more
Functions are having issues with being copied around, especially between buckets, leading to the scopes getting looped. The program gets stuck in 'incrementRefCount()'. It's past my time limit, so I'll keep working on it tomorrow with a fresh mind. All function stuff is still untested. See #163
This commit is contained in:
@@ -40,17 +40,19 @@ typedef struct Toy_VM {
|
||||
|
||||
//easy access to memory
|
||||
Toy_Bucket* literalBucket; //stores the value literals (strings, functions, etc.)
|
||||
Toy_Bucket* scopeBucket; //stores the scope instances TODO: is this separation needed?
|
||||
Toy_Bucket* scopeBucket; //stores the scope instances
|
||||
Toy_Bucket** scopeBucketHandle; //for reusing the scope bucket to save on alloc/free
|
||||
} Toy_VM;
|
||||
|
||||
TOY_API void Toy_resetVM(Toy_VM* vm, bool preserveScope);
|
||||
|
||||
TOY_API void Toy_initVM(Toy_VM* vm); //creates memory
|
||||
TOY_API void Toy_inheritVM(Toy_VM* vm, Toy_VM* parent); //inherits memory
|
||||
TOY_API void Toy_inheritVM(Toy_VM* vm, Toy_VM* parent); //inherits scope bucket
|
||||
|
||||
TOY_API void Toy_bindVM(Toy_VM* vm, Toy_Module* module, bool preserveScope);
|
||||
TOY_API void Toy_runVM(Toy_VM* vm);
|
||||
|
||||
TOY_API unsigned int Toy_runVM(Toy_VM* vm);
|
||||
TOY_API void Toy_freeVM(Toy_VM* vm);
|
||||
|
||||
TOY_API Toy_Array* Toy_extractResultsFromVM(Toy_Bucket** bucketHandle, Toy_VM* subVM, unsigned int resultCount);
|
||||
|
||||
//TODO: inject extra data (hook system for external libraries)
|
||||
|
||||
Reference in New Issue
Block a user