Lines Matching refs:config
14 #define ERROR(x...) config->error(config->ehandle, ##x)
18 static ZZJSON *zzjson_create_templ(ZZJSON_CONFIG *config, ZZJSON_TYPE type) {
19 ZZJSON *zzjson = config->calloc(1, sizeof(ZZJSON));
25 ZZJSON *zzjson_create_true(ZZJSON_CONFIG *config) {
26 return zzjson_create_templ(config, ZZJSON_TRUE);
29 ZZJSON *zzjson_create_false(ZZJSON_CONFIG *config) {
30 return zzjson_create_templ(config, ZZJSON_FALSE);
33 ZZJSON *zzjson_create_null(ZZJSON_CONFIG *config) {
34 return zzjson_create_templ(config, ZZJSON_NULL);
37 ZZJSON *zzjson_create_number_d(ZZJSON_CONFIG *config, double d) {
38 ZZJSON *zzjson = zzjson_create_templ(config, ZZJSON_NUMBER_DOUBLE);
44 ZZJSON *zzjson_create_number_i(ZZJSON_CONFIG *config, long long i) {
45 ZZJSON *zzjson = zzjson_create_templ(config, ZZJSON_NUMBER_NEGINT);
53 /* sdup mimics strdup, but avoids having another function pointer in config */
54 static char *sdup(ZZJSON_CONFIG *config, char *s) {
56 char *scopy = config->malloc(slen);
63 ZZJSON *zzjson_create_string(ZZJSON_CONFIG *config, char *s) {
67 if (!(scopy = sdup(config,s))) return zzjson;
69 if ((zzjson = zzjson_create_templ(config, ZZJSON_STRING)))
72 config->free(scopy);
77 ZZJSON *zzjson_create_array(ZZJSON_CONFIG *config, ...) {
81 if (!(zzjson = zzjson_create_templ(config, ZZJSON_ARRAY))) return zzjson;
84 va_start(ap, config);
91 ZZJSON *next = zzjson_create_templ(config, ZZJSON_ARRAY);
95 config->free(retval);
108 ZZJSON *zzjson_create_object(ZZJSON_CONFIG *config, ...) {
113 if (!(zzjson = zzjson_create_templ(config, ZZJSON_OBJECT))) return zzjson;
116 va_start(ap, config);
120 labelcopy = sdup(config, label);
123 zzjson_free(config, retval);
134 ZZJSON *next = zzjson_create_templ(config, ZZJSON_OBJECT);
138 config->free(retval->value.object.label);
139 config->free(retval);
152 ZZJSON *zzjson_array_prepend(ZZJSON_CONFIG *config, ZZJSON *array,
161 zzjson = zzjson_create_templ(config, ZZJSON_ARRAY);
169 ZZJSON *zzjson_array_append(ZZJSON_CONFIG *config, ZZJSON *array,
178 zzjson = zzjson_create_templ(config, ZZJSON_ARRAY);
189 ZZJSON *zzjson_object_prepend(ZZJSON_CONFIG *config, ZZJSON *object,
192 char *labelcopy = sdup(config, label);
202 zzjson = zzjson_create_templ(config, ZZJSON_OBJECT);
208 config->free(labelcopy);
213 ZZJSON *zzjson_object_append(ZZJSON_CONFIG *config, ZZJSON *object,
216 char *labelcopy = sdup(config, label);
226 zzjson = zzjson_create_templ(config, ZZJSON_OBJECT);
228 config->free(labelcopy);