Changeset: 513a96bcc16e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=513a96bcc16e
Modified Files:
        monetdb5/extras/jaql/json_jaql.h
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/json.h
Branch: default
Log Message:

Fix new json code to also compile on Windows.


diffs (96 lines):

diff --git a/monetdb5/extras/jaql/json_jaql.h b/monetdb5/extras/jaql/json_jaql.h
--- a/monetdb5/extras/jaql/json_jaql.h
+++ b/monetdb5/extras/jaql/json_jaql.h
@@ -26,7 +26,7 @@
 #include "mal_interpreter.h"
 
 #ifdef WIN32
-#ifndef LIBJSON
+#ifndef LIBJSON_JAQL
 #define json_export extern __declspec(dllimport)
 #else
 #define json_export extern __declspec(dllexport)
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
@@ -198,11 +198,10 @@ JSONdumpInternal(JSON *jt, int depth)
        for( i = je->next; i; i = jt->elm[i].next)
                mnstr_printf(fd,"%d ",i);
        if ( je->name){
-               for(i=0; i< je->namelen; i++) mnstr_printf(fd,"%c",je->name[i]);
-               mnstr_printf(fd," : ");
+               mnstr_printf(fd, "%.*s : ", (int) je->namelen, je->name);
        }
        if ( je->value)
-               for(i=0; i< je->valuelen; i++) 
mnstr_printf(fd,"%c",je->value[i]);
+               mnstr_printf(fd, "%.*s", (int) je->valuelen, je->value);
        mnstr_printf(fd,"\n");
        }
 }
@@ -340,7 +339,7 @@ JSONappend(JSON *jt, int idx, int nxt){
 typedef struct {
        int token;
        char *name;
-       int namelen;
+       size_t namelen;
        int index;
        int first, last;
 } pattern;
@@ -433,7 +432,7 @@ JSONgetValue(JSON *jt, int idx)
 static str
 JSONglue(str res, str r, char sep)
 {
-       int len,l;
+       size_t len, l;
        str n;
        if( r== 0 || *r == 0)
                return res;
@@ -863,6 +862,7 @@ static char *
 JSONplaintext(char *r, JSON *jt, int idx, char sep)
 {
        int i;
+       size_t j;
        switch(jt->elm[idx].kind){
        case JSON_OBJECT:
                for( i= jt->elm[idx].next; i; i= jt->elm[i].next)
@@ -879,19 +879,19 @@ JSONplaintext(char *r, JSON *jt, int idx
                        r = JSONplaintext(r, jt,jt->elm[idx].child,sep);
                break;
        case JSON_STRING:
-               for(i=1; i< jt->elm[idx].valuelen-1; i++){
-                       if ( jt->elm[idx].value[i] == '\\')
-                               *r = jt->elm[idx].value[++i];
+               for(j=1; j< jt->elm[idx].valuelen-1; j++){
+                       if ( jt->elm[idx].value[j] == '\\')
+                               *r = jt->elm[idx].value[++j];
                        else
-                               *r = jt->elm[idx].value[i];
+                               *r = jt->elm[idx].value[j];
                        r++;
                }
                if(sep)
                        *r++= sep;
                break;
        default:
-               for(i=0; i< jt->elm[idx].valuelen; i++){
-                       *r = jt->elm[idx].value[i];
+               for(j=0; j< jt->elm[idx].valuelen; j++){
+                       *r = jt->elm[idx].value[j];
                        r++;
                }
                if(sep)
diff --git a/monetdb5/modules/atoms/json.h b/monetdb5/modules/atoms/json.h
--- a/monetdb5/modules/atoms/json.h
+++ b/monetdb5/modules/atoms/json.h
@@ -39,9 +39,9 @@
 typedef struct JSONterm {
     short kind;
     char *name; /* exclude the quotes */
-    int namelen;
+    size_t namelen;
     char *value; /* start of string rep */
-    int valuelen;
+    size_t valuelen;
     int child, next, tail; /* next offsets allow you to walk array/object 
chains and append quickly */
     /* An array or object item has a number of components */
 } JSONterm; 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to