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(RJP_value* obj, RJP_value* member);
|
||||
|
||||
void 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_steal(RJP_value* dest, 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);
|
||||
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);
|
||||
}
|
||||
|
||||
void rjp_set_key(RJP_value* dest, const char* key, RJP_index keylen){
|
||||
if(key){
|
||||
if(!keylen){
|
||||
keylen = strlen(key);
|
||||
}
|
||||
}else{
|
||||
keylen = 0;
|
||||
RJP_value* rjp_set_key(RJP_value* dest, const char* key, RJP_index keylen){
|
||||
if(!key)
|
||||
return NULL;
|
||||
if(!keylen){
|
||||
if(!(keylen = strlen(key)))
|
||||
return NULL;
|
||||
}
|
||||
char* newkey = rjp_alloc(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){
|
||||
if(key){
|
||||
if(!keylen){
|
||||
keylen = strlen(key);
|
||||
}
|
||||
}else{
|
||||
keylen = 0;
|
||||
RJP_value* rjp_set_key_steal(RJP_value* dest, char* key, RJP_index keylen){
|
||||
if(!key)
|
||||
return NULL;
|
||||
if(!keylen){
|
||||
if(!(keylen = strlen(key)))
|
||||
return NULL;
|
||||
}
|
||||
switch(dest->parent->type){
|
||||
case rjp_json_object:
|
||||
@ -144,6 +142,7 @@ void rjp_set_key_steal(RJP_value* dest, char* key, RJP_index keylen){
|
||||
break;
|
||||
default: break;
|
||||
};
|
||||
return dest;
|
||||
}
|
||||
RJP_index rjp_num_members(const RJP_value* object){
|
||||
switch(object->type){
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user