MCPcopy Create free account
hub / github.com/cppla/ServerStatus / json_value_free_ex

Function json_value_free_ex

server/src/json.c:898–946  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

896}
897
898void json_value_free_ex (json_settings * settings, json_value * value)
899{
900 json_value * cur_value;
901
902 if (!value)
903 return;
904
905 value->parent = 0;
906
907 while (value)
908 {
909 switch (value->type)
910 {
911 case json_array:
912
913 if (!value->u.array.length)
914 {
915 settings->mem_free (value->u.array.values, settings->user_data);
916 break;
917 }
918
919 value = value->u.array.values [-- value->u.array.length];
920 continue;
921
922 case json_object:
923
924 if (!value->u.object.length)
925 {
926 settings->mem_free (value->u.object.values, settings->user_data);
927 break;
928 }
929
930 value = value->u.object.values [-- value->u.object.length].value;
931 continue;
932
933 case json_string:
934
935 settings->mem_free (value->u.string.ptr, settings->user_data);
936 break;
937
938 default:
939 break;
940 };
941
942 cur_value = value;
943 value = value->parent;
944 settings->mem_free (cur_value, settings->user_data);
945 }
946}
947
948void json_value_free (json_value * value)
949{

Callers 2

json_parse_exFunction · 0.85
json_value_freeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected