From f3829559d4e239c5ea870d98cc4a96ed351793fb Mon Sep 17 00:00:00 2001 From: nilspolek Date: Sun, 28 Jan 2024 00:14:19 +0100 Subject: [PATCH] null problems are now not more --- SDA.c | 1 + 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.o | Bin 52848 -> 53640 bytes record.c | 22 ++++++++++++++-------- stack.c | 7 +++---- stackslot.c | 2 ++ 9 files changed, 20 insertions(+), 12 deletions(-) diff --git a/SDA.c b/SDA.c index 08a7db2..b900fe8 100644 --- a/SDA.c +++ b/SDA.c @@ -15,6 +15,7 @@ ObjRef getSDA(int i, struct sda s) { } void setSDA(int point, ObjRef val, struct sda s) { + if (val == NULL) perror("Value is null"); s.sda[point] = val; } diff --git a/bigint/build/bin/testbip b/bigint/build/bin/testbip index e4402376ef9021ac78706989a42c12d71de4c4e1..8ff35dc68172a32fd1039125d85cca72189637fc 100755 GIT binary patch delta 137 zcmV;40CxZQxdiyR1h8lX5aboUsO6_KfwI0i0jYq8ea%~qEtuAb1sZnX#R1*4Wx6~Q| r-~k{nv@>aiWf3PMz;t@=RrjYw=}ByFk+yOI>Et$%n5Sr$)EogM^vph% delta 137 zcmV;40CxZQxdiyR1h8lX5T4DJ*}`l&v!OiphOb9KFoSpmmv{sLNCL2fx55Mg-Ub4& zgO{QU0saE8gSVm#0TK=%l`;)EogM@!vrX diff --git a/bigint/build/lib/libbigint.a b/bigint/build/lib/libbigint.a index dd462dbff954da762e0b75423389bd74e9c40ba8..f13c526b9a7e2ae9106d619c3b89e52dc009975b 100644 GIT binary patch delta 27 gcmbPnopHu>#tCvP=7y#g8#tCvPCZ;Bq8#tCvP=7y#g8#tCvPCZ;Bq8Yq8ea%~qEtuAb1sZnX#R1*4Wx6~Q| r-~k{nv@>aiWf3PMz;t@=RrjYw=}ByFk+yOI>Et$%n5Sr$)EogM^vph% delta 137 zcmV;40CxZQxdiyR1h8lX5T4DJ*}`l&v!OiphOb9KFoSpmmv{sLNCL2fx55Mg-Ub4& zgO{QU0saE8gSVm#0TK=%l`;)EogM@!vrX diff --git a/njvm.o b/njvm.o index adbcd7b05ca31acff760463887595d0f0712d04c..59baaa5dfd02c8a700bb5b70ae0f27e1911b737f 100644 GIT binary patch delta 19986 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%0A9+)R z1Hxy7PYU@TF0etZ@G>F4yiA?n{3cH$D)Ps|*M-judAGCv3E@MUIK%5is1sf*-x@X~;v#U}%*?6C!zaj3Wd zn}^4Gl_WXu5%d#ckcYcYPreL?^ zuadIek^e60SZ_Dvw@W~W#o@37WVhgdT*`LSeW47n5%(|;UhDMto^Fp*bBhReul@g# z2<=w;+>^&Wfl@7ydxmNa-<0Yv)W0SH&5-itQnuUc`PD{_(C)6EFJ-&AzE=X|-g@@$+$|B>z4bqkfb4eq3Mt#o z^e;<5b}#*0DPJoA?UR7)PWmD#+l};mHZ#B*t4;sTY!U1}`WGa^Tg4$?gV?}sqVJc0 z>>m0>QvR6O@0Wn=4*Ka*-X!&3l7Jql*5k+9qX>5Y{O2SfyJLQel#}9MuLNlK$gh+D z?Y8)rB_OjC9;ZUecJKRFB%l=kdY%Bhj*4KnyYH5O#!Ef-bZ`djX7@G;Xpz)Ukh0y~ z{*=^-prOaLBJT8&|ACvNv z5|G_e9zxmY2<(>fha|!mq`?^p$ZjZalCs@Teo6we+sPZHY&VntUIMav$u~*aZY6&@ z1@}J#uv^LhE)m+DOevirsPqD238xA^xZAiL>%nJ>alarlNr zXg7*4mhx_?KO_O#J>vYp$PT`0M<@Z={o&P8w!6doB_O*u++QTZVR7(n3FwDX=6B-R zf!zuI4GGBZ18@yx*K6eo7gS+g!fwyUO7PYYO(O#?P}n z%7G^hPU6D>kN3o0zWT}?1G>H4ty+j+>8~{_`Ox91)B8*-=i?&VukZd}X;zt)eC6;| z-+s}y5$0@d|JNjZhSFvG<>kLfIqhoW_kD3=zm{AtW&6$QZ;CxvBOadA+b>SnnXr7l z@rni?7lTSv@OW0r_N(5xG7kGa6;VS22m delta 18906 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 W6}@p+YR?;Yb(j2nT?iMP point || point > getSize(arr)){ printf("Index %i out of bounds for length %i\n",point, getSize(arr)); } return *(ObjRef *)GET_REFS_PTR(arr)[point]->data; } void setField(ObjRef arr, int point, ObjRef value){ + bool isNull = false; + if(value == NULL) isNull = true; if(0 > point || point >= getSize(arr)){ printf("Index %i out of bounds for length %i\n",point, getSize(arr)); exit(EXIT_FAILURE); } + if(arr == NULL) perror("Record is null"); if(IS_PRIMITIVE(arr)) perror("Record is a primitive"); - if(IS_PRIMITIVE(value)){ - int size = value->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 *)); - if((GET_REFS_PTR(arr)[point] = malloc(size)) == NULL) perror("malloc"); - GET_REFS_PTR(arr)[point] ->size = size; + int size; + if (isNull) size = sizeof(void *); + else { + if (IS_PRIMITIVE(value)) + size = value->size; + else + size = sizeof(*value) + (GET_ELEMENT_COUNT(value) * sizeof(void *)); } + 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/stack.c b/stack.c index 6925d71..34a9b91 100755 --- a/stack.c +++ b/stack.c @@ -8,9 +8,6 @@ #include #include "stackslot.c" - - - struct stack { int* size; int* current; @@ -26,11 +23,13 @@ void printStack(struct stack stack, int fp) { printf("Stack\nSize:\t\t%i\nCurrent:\t%i\n", *stack.size, *stack.current); for (int i = *stack.current -1; i >= 0; --i) { printf("%i\t",i); + if(stack.stack[i].u.objRef == NULL) printf("|NULL|"); + else if(stack.stack[i].isObjRef){ printf("|%p|", (void *)stack.stack[i].u.objRef); if(stack.stack[i].u.objRef->size == sizeof(int)) printf("(%i)",*(int *)stack.stack[i].u.objRef->data); - }else { + }else { printf("|%i|", getIntValfromStackSlot(stack.stack[i])); } if(fp == i) printf("<-\tFP\n"); diff --git a/stackslot.c b/stackslot.c index 6e28921..659a5eb 100644 --- a/stackslot.c +++ b/stackslot.c @@ -30,6 +30,7 @@ ObjRef getIntObj(int val) { } int getValFromIntObj(ObjRef iref) { + if (iref == NULL) perror("ObjRef is null"); return *(int *) iref->data; } @@ -41,6 +42,7 @@ int getIntValfromStackSlot(StackSlot s) { } void setValIntObj(ObjRef iref, int val) { + if (iref == NULL) perror("ObjRef is null"); iref->size = sizeof(int)+sizeof(ObjRef); *(int *) iref->data = val; }