Disallow changing member key to empty string
This commit is contained in:
parent
7395f41ccc
commit
e6950db87c
@ -171,8 +171,8 @@ RJP_value* rjp_remove_member(RJP_value* obj, RJP_value* member);
|
|||||||
void rjp_free_member_by_key(RJP_value* obj, const char* key);
|
void rjp_free_member_by_key(RJP_value* obj, const char* key);
|
||||||
void rjp_free_member(RJP_value* obj, RJP_value* member);
|
void rjp_free_member(RJP_value* obj, RJP_value* member);
|
||||||
|
|
||||||
void rjp_set_key_steal(RJP_value* dest, char* key, RJP_index keylen);
|
RJP_value* rjp_set_key_steal(RJP_value* dest, char* key, RJP_index keylen);
|
||||||
void rjp_set_key(RJP_value* dest, const char* key, RJP_index keylen);
|
RJP_value* rjp_set_key(RJP_value* dest, const char* key, RJP_index keylen);
|
||||||
|
|
||||||
RJP_index rjp_num_members(const RJP_value* object);
|
RJP_index rjp_num_members(const RJP_value* object);
|
||||||
const RJP_string* rjp_member_key(const RJP_value* member);
|
const RJP_string* rjp_member_key(const RJP_value* member);
|
||||||
|
|||||||
@ -115,25 +115,23 @@ void rjp_free_member(RJP_value* obj, RJP_value* member){
|
|||||||
rjp_free_member_by_key(obj, ((RJP_object_member*)member)->name.value);
|
rjp_free_member_by_key(obj, ((RJP_object_member*)member)->name.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void rjp_set_key(RJP_value* dest, const char* key, RJP_index keylen){
|
RJP_value* rjp_set_key(RJP_value* dest, const char* key, RJP_index keylen){
|
||||||
if(key){
|
if(!key)
|
||||||
|
return NULL;
|
||||||
if(!keylen){
|
if(!keylen){
|
||||||
keylen = strlen(key);
|
if(!(keylen = strlen(key)))
|
||||||
}
|
return NULL;
|
||||||
}else{
|
|
||||||
keylen = 0;
|
|
||||||
}
|
}
|
||||||
char* newkey = rjp_alloc(keylen + 1);
|
char* newkey = rjp_alloc(keylen + 1);
|
||||||
strncpy(newkey, key, keylen+1);
|
strncpy(newkey, key, keylen+1);
|
||||||
rjp_set_key_steal(dest, newkey, keylen);
|
return rjp_set_key_steal(dest, newkey, keylen);
|
||||||
}
|
}
|
||||||
void rjp_set_key_steal(RJP_value* dest, char* key, RJP_index keylen){
|
RJP_value* rjp_set_key_steal(RJP_value* dest, char* key, RJP_index keylen){
|
||||||
if(key){
|
if(!key)
|
||||||
|
return NULL;
|
||||||
if(!keylen){
|
if(!keylen){
|
||||||
keylen = strlen(key);
|
if(!(keylen = strlen(key)))
|
||||||
}
|
return NULL;
|
||||||
}else{
|
|
||||||
keylen = 0;
|
|
||||||
}
|
}
|
||||||
switch(dest->parent->type){
|
switch(dest->parent->type){
|
||||||
case rjp_json_object:
|
case rjp_json_object:
|
||||||
@ -144,6 +142,7 @@ void rjp_set_key_steal(RJP_value* dest, char* key, RJP_index keylen){
|
|||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
};
|
};
|
||||||
|
return dest;
|
||||||
}
|
}
|
||||||
RJP_index rjp_num_members(const RJP_value* object){
|
RJP_index rjp_num_members(const RJP_value* object){
|
||||||
switch(object->type){
|
switch(object->type){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user