From 6ebc065a7a36ec2edd961df69ca9db630e06d6f0 Mon Sep 17 00:00:00 2001 From: nilspolek Date: Sat, 27 Jan 2024 22:43:34 +0100 Subject: [PATCH] added a method for testing arrays --- GC.c | 2 +- bigint/build/bin/testbip | Bin 72952 -> 72952 bytes bigint/build/lib/libbigint.a | Bin 27544 -> 27544 bytes bigint/src/libbigint.a | Bin 27544 -> 27544 bytes bigint/tst/testbip | Bin 72952 -> 72952 bytes njvm.c | 27 +++++++++++++++------------ njvm.o | Bin 51104 -> 52104 bytes prog.bin | Bin 31612 -> 76 bytes record.c | 9 +++++---- stackslot.c | 2 ++ test.nj | 3 +++ test/tests/14.bin | Bin 0 -> 80 bytes test/tests/arrTest.asm | 18 ++++++++++++++++++ 13 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 test.nj create mode 100644 test/tests/14.bin create mode 100644 test/tests/arrTest.asm diff --git a/GC.c b/GC.c index 7242172..b0c2f5d 100644 --- a/GC.c +++ b/GC.c @@ -21,7 +21,7 @@ struct sda sda; // Stack struct stack stack; -#define SIZE 100000 +#define SIZE 64 //Register struct stack reg; diff --git a/bigint/build/bin/testbip b/bigint/build/bin/testbip index 227a64edc9ef4203c097d5cd576454a66de889ad..d7770ea3ca35a48b34fd36c35da2b21691939fee 100755 GIT binary patch delta 137 zcmV;40CxZQxdiyR1h8lX5Yc!)6-D?q%Z4Jb0lc=6P=j~`mv{sLNCL!nx55Mg-Ub52 zcbB3I0saEScekPp0TK=%#tE{lmWC#l<{Oo?8Nn>0%|VQASpba%2xI^N delta 29 icmbPnopHu>#tE{l7G~zg#v7Hi89^)~i_JldZdm}04hUxe diff --git a/bigint/src/libbigint.a b/bigint/src/libbigint.a index ec9a931c745571bc9d6fc3da335d8ff229f7d58c..972ccb0f8e19f1b384dedadef3247d75d51bde54 100644 GIT binary patch delta 29 hcmbPnopHu>#tE{lmWC#l<{Oo?8Nn>0%|VQASpba%2xI^N delta 29 icmbPnopHu>#tE{l7G~zg#v7Hi89^)~i_JldZdm}04hUxe diff --git a/bigint/tst/testbip b/bigint/tst/testbip index 227a64edc9ef4203c097d5cd576454a66de889ad..d7770ea3ca35a48b34fd36c35da2b21691939fee 100755 GIT binary patch delta 137 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%0AW~1+$@#9#I8(kSq3sS*Yk%l)G6^ z-_lHhzFkpnXZ;p%GW4yAas%rdz%camO%Et*SYHX^?JZKF7?lyOC{+`hG=u)Y0Sp|1b*l?$M(t_d6AM z%7JOn?@^TWB^No`3E~kR*`X-6u)YPv6FAbOC>vN`2abilR#8^6z8p-!_=}WL0bNwg z6@?%kY>@&*nZx=pi04xzQ&EOk9{}-OiTD)dDX&U&2n<1gLQxK|z7NDI9ieaeqA1A2 zTyYS@Y8*MBD7#p{8;pm3m!jOsdivTBt8JuBQMRyt1BgX4(x@owSYHETt%_7D%5pDe zKXqvY3al}a5=EH@VhM=kD9Rp>nr;UbtJ1(9qur2O&FkYJO}{}9Gc_`xC~LUBlIttD zzMSg^P4qu44D_uYIp_m1MI*h6vX1q&AZAvCeo+C+O4e6^7}LM z)(a5V6glN`D38-mAL&YZKuX{sh>MFHP?YooP14taNIFuhD05h!4Z>$6tSATYC?xxS z5UL1$uMNs-ke-SGX0cFDPrLu6P?Rbz!9YNrw*doycpbBdIhXls33qfC_7vmCRCR0dop7#QZx(9<>`_zQ;Vke1W->c^`8< zvz8gXiVI7a=Q6|01g4AmC5AQyrlpkld**A*=b5xpQvLnRJDDq)6^c>sQdZ1iPG-^y zM-EKpSC~5_A7dV2{)YJi^D*WY=3UHH%&VES-nj5Q_0DC*6lNmR&HNkYBn3WX&wM#6 zZZS)_pxL?NoFRquRg0^h^NRdP7|i%X&ZETb!`oPB)$t)|=_* zPLe;pmoAQFy_N0(N{ALyy_Ie>XQ+45J;Vv=jdbH#b}dmo(7_4mU3Ak~j^p}Yae_gX z6F5P=nXVZLMJdB1HZY+eS?{H5;e_;7IuFZwC*2lKXp#=Vau&;vazc6+-2|5NxPBM? zs+9ujO>`D#sQ1v()0pb@7P?_hK<}WtlV!bu?psdaVh+&Evff8$v8=bwwb8?r0^H0E zk~zc8EI*Dqs(+m2@4ZUyWO)tCdLtceDkA%jxW1m{V=RBk37lZLG0FQA_kWl((!1K4SpJk9(8^5?hgdFSS#N23 zmlN_{sCwu!mi30V|KNnia{Vx;NEY47GSbK;Q(%aRNS=JlWc5p(IN~!;_VzR9FrnPfIdS_Y|%X(kh z3!KmeQFd@HEA&RR{hXoRhE~K0=*KnvRB{yB=$){ONXF}-{-0&w&rpK)Zt49bw8M+! z9N5wE49RG}NIS5gBm@0RwSI1(e=YV2%la2@sYsCQhl2LL1Lus}f`Xat&S^wzlYj&f5DObg^{w3aXY#&Cy(qVCZ7hm3GD!WBO|1545 z8|(z>c#>uPvp@Q^FI|rQ!CfWGDfS1iXBZKC`1Oo2frYB=2LRdjBy>)D!|$^f9E#d+ NAKGTGcxRF!{uf;WR?`3g diff --git a/prog.bin b/prog.bin index a12da6ab15cb6c2e77d5f3889e3f6757b4ec8e1e..b97c91f2500f51bdd98903307627257f202999f8 100644 GIT binary patch literal 76 zcmebCa&qHfU|`?}Vh~_vU{C;30zk~q#lXM_q?JHyZXg@T0keU8MUWVf52BfX7-R$k E0Dj&APyhe` literal 31612 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 diff --git a/record.c b/record.c index 8435155..b6345db 100644 --- a/record.c +++ b/record.c @@ -29,17 +29,18 @@ ObjRef getField(ObjRef arr, int point){ return *(ObjRef *)GET_REFS_PTR(arr)[point]->data; } void setField(ObjRef arr, int point, ObjRef value){ - if(0 > point || point > getSize(arr)){ + if(0 > point || point >= getSize(arr)){ printf("Index %i out of bounds for length %i\n",point, getSize(arr)); + exit(EXIT_FAILURE); } + if(IS_PRIMITIVE(arr)) perror("Record is a primitive"); if(IS_PRIMITIVE(value)){ -// printf("Size of value is %i\n", value->size); int size = value->size; - GET_REFS_PTR(arr)[point] = malloc(size); + if((GET_REFS_PTR(arr)[point] = malloc(size)) == NULL) perror("malloc"); GET_REFS_PTR(arr)[point]->size = size; }else{ int size = sizeof(*value) + (GET_ELEMENT_COUNT(value) * sizeof(void *)); - GET_REFS_PTR(arr)[point] = malloc(size); + if((GET_REFS_PTR(arr)[point] = malloc(size)) == NULL) perror("malloc"); GET_REFS_PTR(arr)[point] ->size = size; } * (ObjRef *)GET_REFS_PTR(arr)[point]->data = value; diff --git a/stackslot.c b/stackslot.c index 61dffb7..6e28921 100644 --- a/stackslot.c +++ b/stackslot.c @@ -48,6 +48,7 @@ void setValIntObj(ObjRef iref, int val) { StackSlot stackSlotWithObjRef(ObjRef val) { StackSlot *stackSlot; stackSlot = malloc(sizeof(StackSlot)); + if(stackSlot == NULL) perror("malloc"); stackSlot->isObjRef = true; stackSlot->u.objRef = val; return *stackSlot; @@ -56,6 +57,7 @@ StackSlot stackSlotWithObjRef(ObjRef val) { StackSlot stackSlotWitchNumber(int val) { StackSlot *stackSlot; stackSlot = malloc(sizeof(StackSlot)); + if(stackSlot == NULL) perror("malloc"); stackSlot->isObjRef = false; stackSlot->u.number = val; return *stackSlot; diff --git a/test.nj b/test.nj new file mode 100644 index 0000000..655b850 --- /dev/null +++ b/test.nj @@ -0,0 +1,3 @@ +void main(){ + +} \ No newline at end of file diff --git a/test/tests/14.bin b/test/tests/14.bin new file mode 100644 index 0000000000000000000000000000000000000000..439ca224b1b6c0504475211c65ce2076d99a9276 GIT binary patch literal 80 zcmebCa&qHfU|