diff --git a/CMakeLists.txt b/CMakeLists.txt index d44b8df..85bf666 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,8 @@ set(CMAKE_C_STANDARD 99) add_compile_options(-g -Wall -pedantic) -add_executable(njvm njvm.c) +add_executable(njvm njvm.c + njvm.h) # Include directories for njvm executable target_include_directories(njvm PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bigint/build/include) diff --git a/bigint/build/bin/testbip b/bigint/build/bin/testbip index 7c94e48..7d91ca7 100755 Binary files a/bigint/build/bin/testbip and b/bigint/build/bin/testbip differ diff --git a/bigint/build/lib/libbigint.a b/bigint/build/lib/libbigint.a index 2907fce..4c9a702 100644 Binary files a/bigint/build/lib/libbigint.a and b/bigint/build/lib/libbigint.a differ diff --git a/bigint/src/libbigint.a b/bigint/src/libbigint.a index 2907fce..4c9a702 100644 Binary files a/bigint/src/libbigint.a and b/bigint/src/libbigint.a differ diff --git a/bigint/tst/testbip b/bigint/tst/testbip index 7c94e48..7d91ca7 100755 Binary files a/bigint/tst/testbip and b/bigint/tst/testbip differ diff --git a/njvm.c b/njvm.c index 639dd7e..86d44fc 100644 --- a/njvm.c +++ b/njvm.c @@ -417,23 +417,23 @@ void garbageCollector() { gcCount++; } -ObjRef alloc(unsigned int size) { - if (freeHeapPtr + size > halfHeapPtr) { +ObjRef alloc(unsigned int objectSize) { + if (freeHeapPtr + objectSize > halfHeapPtr) { garbageCollector(); - if (freeHeapPtr + size > halfHeapPtr) { + if (freeHeapPtr + objectSize > halfHeapPtr) { fprintf(stderr, "Heap is full\n"); exit(1); } } ObjRef or; or = (ObjRef) freeHeapPtr; - freeHeapPtr = freeHeapPtr + size; + freeHeapPtr = freeHeapPtr + objectSize; return or; } void heapAllocator(int n) { heapSizeKiB = n; - if ((heap = alloc(n * 1024)) == NULL) { + if ((heap = malloc(n * 1024)) == NULL) { perror("malloc"); exit(1); } @@ -503,7 +503,7 @@ int main(int argc, char *argv[]) { run = 1; } } - //heapAllocator(argVheapSizeKiB); + heapAllocator(argVheapSizeKiB); // Init the sda ObjRef s[sizeSDA]; sda.size = &sizeSDA; diff --git a/njvm.h b/njvm.h new file mode 100644 index 0000000..57c9238 --- /dev/null +++ b/njvm.h @@ -0,0 +1,11 @@ +// +// Created by Elias Bennour on 28.01.24. +// + +#ifndef NINJA_NJVM_H +#define NINJA_NJVM_H +#include "objref.c" + +ObjRef alloc(unsigned int size); + +#endif //NINJA_NJVM_H diff --git a/njvm.o b/njvm.o index 57daa1f..e458976 100644 Binary files a/njvm.o and b/njvm.o differ diff --git a/support.o b/support.o index d48f255..3fa5a66 100644 Binary files a/support.o and b/support.o differ