int virJSONValueObjectAppendNull(virJSONValuePtr object, const char *key) { virJSONValuePtr jvalue = virJSONValueNewNull(); if (!jvalue) return -1; if (virJSONValueObjectAppend(object, key, jvalue) < 0) { virJSONValueFree(jvalue); return -1; } return 0; }
static int virJSONParserHandleNull(void *ctx) { virJSONParserPtr parser = ctx; virJSONValuePtr value = virJSONValueNewNull(); VIR_DEBUG("parser=%p", parser); if (!value) return 0; if (virJSONParserInsertValue(parser, value) < 0) { virJSONValueFree(value); return 0; } return 1; }
virJSONValuePtr virJSONValueNewStringLen(const char *data, size_t length) { virJSONValuePtr val; if (!data) return virJSONValueNewNull(); if (VIR_ALLOC(val) < 0) return NULL; val->type = VIR_JSON_TYPE_STRING; if (!(val->data.string = strndup(data, length))) { VIR_FREE(val); return NULL; } return val; }
virJSONValuePtr virJSONValueNewString(const char *data) { virJSONValuePtr val; if (!data) return virJSONValueNewNull(); if (VIR_ALLOC(val) < 0) return NULL; val->type = VIR_JSON_TYPE_STRING; if (VIR_STRDUP(val->data.string, data) < 0) { VIR_FREE(val); return NULL; } return val; }