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