mirror of
https://github.com/json-c/json-c.git
synced 2026-04-05 05:19:07 +08:00
Handle NULL objects in json_object_get_userdata() by returning NULL, but abort in json_object_set_userdata() since we can't actually do anything with the userdata.
This commit is contained in:
@@ -241,12 +241,15 @@ enum json_type json_object_get_type(const struct json_object *jso)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void* json_object_get_userdata(json_object *jso) {
|
void* json_object_get_userdata(json_object *jso) {
|
||||||
return jso->_userdata;
|
return jso ? jso->_userdata : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void json_object_set_userdata(json_object *jso, void *userdata,
|
void json_object_set_userdata(json_object *jso, void *userdata,
|
||||||
json_object_delete_fn *user_delete)
|
json_object_delete_fn *user_delete)
|
||||||
{
|
{
|
||||||
|
// Can't return failure, so abort if we can't perform the operation.
|
||||||
|
assert(jso != NULL);
|
||||||
|
|
||||||
// First, clean up any previously existing user info
|
// First, clean up any previously existing user info
|
||||||
if (jso->_user_delete)
|
if (jso->_user_delete)
|
||||||
jso->_user_delete(jso, jso->_userdata);
|
jso->_user_delete(jso, jso->_userdata);
|
||||||
|
|||||||
Reference in New Issue
Block a user