Changeset: 8953cda16ff6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8953cda16ff6
Modified Files:
monetdb5/modules/atoms/json_atom.c
Branch: default
Log Message:
json_atom.c: use correct type (size_t instead of int).
diffs (135 lines):
diff --git a/monetdb5/modules/atoms/json_atom.c
b/monetdb5/modules/atoms/json_atom.c
--- a/monetdb5/modules/atoms/json_atom.c
+++ b/monetdb5/modules/atoms/json_atom.c
@@ -39,10 +39,14 @@ str JSONparse(char *j);
int JSONfromString(str src, int *len, json *j)
{
+ size_t ll;
+
if (*j !=0)
GDKfree(*j);
- *len = (int) strlen(src);
+ ll = strlen(src);
+ assert(ll <= (size_t) INT_MAX);
+ *len = (int) ll;
*j = GDKstrdup(src);
return *len;
@@ -50,6 +54,7 @@ int JSONfromString(str src, int *len, js
int JSONtoString(str *s, int *len, json src)
{
+ size_t ll;
int l,cnt=0;
char *c, *dst;
@@ -63,7 +68,9 @@ int JSONtoString(str *s, int *len, json
case '\\':
cnt++;
}
- l = (int) strlen(src) + cnt+3;
+ ll = strlen(src);
+ assert(ll <= (size_t) INT_MAX);
+ l = (int) ll + cnt+3;
if (l >= *len) {
GDKfree(*s);
@@ -1042,7 +1049,7 @@ str JSONrenderRowObject(BAT **bl, MalBlk
{
int i,tpe;
char *row,*name=0,*val=0;
- int len,lim,l;
+ size_t len,lim,l;
void *p;
BATiter bi;
@@ -1059,7 +1066,7 @@ str JSONrenderRowObject(BAT **bl, MalBlk
ATOMformat( tpe, p, &val);
if( strncmp(val,"nil",3) == 0)
strcpy(val,"null");
- l = (int)strlen(name) + (int)strlen(val);
+ l = strlen(name) + strlen(val);
if (l > lim-len)
row= (char*) GDKrealloc(row, lim += BUFSIZ);
snprintf(row+len,lim-len,"\"%s\":%s,", name, val);
@@ -1080,7 +1087,8 @@ JSONrenderobject(Client cntxt, MalBlkPtr
{
BAT **bl;
char *result, *row;
- int i,len,lim,l;
+ int i;
+ size_t len,lim,l;
str *ret;
BUN j,cnt;
@@ -1100,9 +1108,9 @@ JSONrenderobject(Client cntxt, MalBlkPtr
for( j =0; j< cnt; j++){
row = JSONrenderRowObject(bl,mb,stk,pci,j);
- l =(int)strlen(row);
+ l = strlen(row);
if (l +2 > lim-len)
- row= (char*) GDKrealloc(row, lim = ((int)cnt *
l) <= lim? (int)cnt*l: lim+BUFSIZ);
+ row= (char*) GDKrealloc(row, lim = cnt * l <=
lim? cnt*l: lim+BUFSIZ);
strncpy(result+len,row, l+1);
GDKfree(row);
len +=l;
@@ -1120,7 +1128,7 @@ str JSONrenderRowArray(BAT **bl, MalBlkP
{
int i,tpe;
char *row,*val=0;
- int len,lim,l;
+ size_t len,lim,l;
void *p;
BATiter bi;
@@ -1136,7 +1144,7 @@ str JSONrenderRowArray(BAT **bl, MalBlkP
ATOMformat( tpe, p, &val);
if( strncmp(val,"nil",3) == 0)
strcpy(val,"null");
- l = (int) strlen(val);
+ l = strlen(val);
if (l > lim-len)
row= (char*) GDKrealloc(row, lim += BUFSIZ);
snprintf(row+len,lim-len,"%s,", val);
@@ -1157,7 +1165,7 @@ JSONrenderarray(Client cntxt, MalBlkPtr
{
BAT **bl;
char *result, *row;
- int len,lim,l;
+ size_t len,lim,l;
str *ret;
BUN j,cnt;
@@ -1174,9 +1182,9 @@ JSONrenderarray(Client cntxt, MalBlkPtr
for( j =0; j< cnt; j++){
row = JSONrenderRowArray(bl,mb,pci,j);
- l = (int)strlen(row);
+ l = strlen(row);
if (l +2 > lim-len)
- row= (char*) GDKrealloc(row, lim = ((int)cnt *
l) <= lim? (int)cnt*l: lim+BUFSIZ);
+ row= (char*) GDKrealloc(row, lim = cnt * l <=
lim? cnt*l: lim+BUFSIZ);
strncpy(result+len,row, l+1);
GDKfree(row);
len +=l;
@@ -1255,7 +1263,7 @@ str JSONnestKeyValue(str *ret, int *id,
if( bk) {
nme = (str) BUNtail(bki, BUNfirst(bk)+i);
- l = (int) strlen(nme);
+ l = strlen(nme);
if (l+3 > lim-len)
row= (char*) GDKrealloc(row, lim =
(lim/(i+1)) * cnt + BUFSIZ+l+3);
snprintf(row+len,lim-len,"\"%s\":", nme);
@@ -1267,7 +1275,7 @@ str JSONnestKeyValue(str *ret, int *id,
ATOMformat( tpe, p, &val);
if( strncmp(val,"nil",3) == 0)
strcpy(val,"null");
- l = (int) strlen(val);
+ l = strlen(val);
if (l > lim-len)
row= (char*) GDKrealloc(row, lim = (lim/(i+1))
* cnt + BUFSIZ+l+3);
if( tpe == TYPE_json && *val =='"'){
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list