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 checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list