Changeset: 44737a694d37 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=44737a694d37
Modified Files:
        monetdb5/modules/atoms/json.c
Branch: default
Log Message:

Avoid non-initialized return values


diffs (79 lines):

diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c
--- a/monetdb5/modules/atoms/json.c
+++ b/monetdb5/modules/atoms/json.c
@@ -62,7 +62,7 @@ static int JSONnew(JSON *js){
                        js->error = 
createException(MAL,"json.new",MAL_MALLOC_FAIL);
                        return js->free -1;
                }
-               else js->elm = term;
+               js->elm = term;
                memset( ((char*)term) + sizeof(JSONterm)*js->size, 0, 8 * 
sizeof(JSONterm));
         js->size += 8;
         if ( jsonhint < js->size)
@@ -86,9 +86,9 @@ JSONfromString(str src, int *len, json *
        ssize_t slen = (ssize_t) strlen(src);
 
        if ( *j)
-               GDKfree(j);
+               GDKfree(*j);
 
-       j = GDKstrdup(src);
+       *j = GDKstrdup(src);
        *len = (int) slen;
        if (GDKstrFromStr((unsigned char *) *j, (const unsigned char *) src, 
slen) < 0) {
                GDKfree(*j);
@@ -210,6 +210,7 @@ JSONdump(int *ret, json *val)
 
        (void) ret;
        JSONdumpInternal(jt,0);
+       JSONfree(jt);
        return MAL_SUCCEED;
 }
 
@@ -581,8 +582,8 @@ JSONstringParser(char *j, char **next, i
                                hex(j); hex(j); hex(j); hex(j);
                                break;
                        default:
+                               *next =j;
                                if ( silent) {
-                                       *next = j;
                                        return MAL_SUCCEED;
                                }
                                throw(MAL, "json.parser", "illegal escape 
char");
@@ -593,6 +594,7 @@ JSONstringParser(char *j, char **next, i
                        *next = j;
                        return MAL_SUCCEED;
                }
+       *next =j;
        if( !silent) 
                throw(MAL, "json.parser", "Nonterminated string");
        return MAL_SUCCEED;
@@ -607,11 +609,13 @@ JSONnumberParser(char *j, char **next, i
                j++;
        skipblancs(j);
        if (*j < '0' || *j > '9'){
+               *next =j;
                if(!silent)
                        throw(MAL, "json.parser", "Number expected");
                return MAL_SUCCEED;
        }
        if (*j == '0' && *(j + 1) != '.'){
+               *next =j;
                if(! silent)
                        throw(MAL, "json.parser", "Decimal expected");
                return MAL_SUCCEED;
@@ -788,12 +792,12 @@ JSONtoken(JSON *jt, char *j, char **next
                return idx;
        default:
                if (*j == '-' || (*j >= '0' && *j <= '9')){
+                       jt->elm[idx].value = j;
                        msg =JSONnumberParser(j, next,silent);
                        if ( !silent)
                                jt->error = msg;
                        jt->elm[idx].kind = JSON_NUMBER;
-                       jt->elm[idx].value = j;
-                       jt->elm[idx].valuelen = *next -j;
+                       jt->elm[idx].valuelen = *next - jt->elm[idx].value;
                        return idx;
                }
                if( !silent)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to