Lines Matching refs:ctx
25 struct _cbor_decoder_context *ctx) { in _cbor_builder_append() argument
26 if (ctx->stack->size == 0) { in _cbor_builder_append()
28 ctx->root = item; in _cbor_builder_append()
32 switch (ctx->stack->top->item->type) { in _cbor_builder_append()
37 if (cbor_array_is_definite(ctx->stack->top->item)) { in _cbor_builder_append()
41 CBOR_ASSERT(ctx->stack->top->subitems > 0); in _cbor_builder_append()
44 if (!cbor_array_push(ctx->stack->top->item, item)) { in _cbor_builder_append()
45 ctx->creation_failed = true; in _cbor_builder_append()
50 ctx->stack->top->subitems--; in _cbor_builder_append()
51 if (ctx->stack->top->subitems == 0) { in _cbor_builder_append()
52 cbor_item_t *stack_item = ctx->stack->top->item; in _cbor_builder_append()
53 _cbor_stack_pop(ctx->stack); in _cbor_builder_append()
54 _cbor_builder_append(stack_item, ctx); in _cbor_builder_append()
58 if (!cbor_array_push(ctx->stack->top->item, item)) { in _cbor_builder_append()
59 ctx->creation_failed = true; in _cbor_builder_append()
69 if (ctx->stack->top->subitems % 2) { in _cbor_builder_append()
71 ctx->creation_failed = in _cbor_builder_append()
72 !_cbor_map_add_value(ctx->stack->top->item, item); in _cbor_builder_append()
75 CBOR_ASSERT(!ctx->creation_failed); in _cbor_builder_append()
78 if (!_cbor_map_add_key(ctx->stack->top->item, item)) { in _cbor_builder_append()
79 ctx->creation_failed = true; in _cbor_builder_append()
85 if (cbor_map_is_definite(ctx->stack->top->item)) { in _cbor_builder_append()
86 CBOR_ASSERT(ctx->stack->top->subitems > 0); in _cbor_builder_append()
87 ctx->stack->top->subitems--; in _cbor_builder_append()
88 if (ctx->stack->top->subitems == 0) { in _cbor_builder_append()
89 cbor_item_t *map_entry = ctx->stack->top->item; in _cbor_builder_append()
90 _cbor_stack_pop(ctx->stack); in _cbor_builder_append()
91 _cbor_builder_append(map_entry, ctx); in _cbor_builder_append()
94 ctx->stack->top->subitems ^= in _cbor_builder_append()
100 CBOR_ASSERT(ctx->stack->top->subitems == 1); in _cbor_builder_append()
101 cbor_tag_set_item(ctx->stack->top->item, item); in _cbor_builder_append()
103 cbor_item_t *tagged_item = ctx->stack->top->item; in _cbor_builder_append()
104 _cbor_stack_pop(ctx->stack); in _cbor_builder_append()
105 _cbor_builder_append(tagged_item, ctx); in _cbor_builder_append()
111 ctx->syntax_error = true; in _cbor_builder_append()
116 #define CHECK_RES(ctx, res) \ argument
119 ctx->creation_failed = true; \
126 #define CHECK_LENGTH(ctx, length) \ argument
129 ctx->creation_failed = true; \
134 #define PUSH_CTX_STACK(ctx, res, subitems) \ argument
136 if (_cbor_stack_push(ctx->stack, res, subitems) == NULL) { \
138 ctx->creation_failed = true; \
143 struct _cbor_decoder_context *ctx = context; in cbor_builder_uint8_callback() local
145 CHECK_RES(ctx, res); in cbor_builder_uint8_callback()
148 _cbor_builder_append(res, ctx); in cbor_builder_uint8_callback()
152 struct _cbor_decoder_context *ctx = context; in cbor_builder_uint16_callback() local
154 CHECK_RES(ctx, res); in cbor_builder_uint16_callback()
157 _cbor_builder_append(res, ctx); in cbor_builder_uint16_callback()
161 struct _cbor_decoder_context *ctx = context; in cbor_builder_uint32_callback() local
163 CHECK_RES(ctx, res); in cbor_builder_uint32_callback()
166 _cbor_builder_append(res, ctx); in cbor_builder_uint32_callback()
170 struct _cbor_decoder_context *ctx = context; in cbor_builder_uint64_callback() local
172 CHECK_RES(ctx, res); in cbor_builder_uint64_callback()
175 _cbor_builder_append(res, ctx); in cbor_builder_uint64_callback()
179 struct _cbor_decoder_context *ctx = context; in cbor_builder_negint8_callback() local
181 CHECK_RES(ctx, res); in cbor_builder_negint8_callback()
184 _cbor_builder_append(res, ctx); in cbor_builder_negint8_callback()
188 struct _cbor_decoder_context *ctx = context; in cbor_builder_negint16_callback() local
190 CHECK_RES(ctx, res); in cbor_builder_negint16_callback()
193 _cbor_builder_append(res, ctx); in cbor_builder_negint16_callback()
197 struct _cbor_decoder_context *ctx = context; in cbor_builder_negint32_callback() local
199 CHECK_RES(ctx, res); in cbor_builder_negint32_callback()
202 _cbor_builder_append(res, ctx); in cbor_builder_negint32_callback()
206 struct _cbor_decoder_context *ctx = context; in cbor_builder_negint64_callback() local
208 CHECK_RES(ctx, res); in cbor_builder_negint64_callback()
211 _cbor_builder_append(res, ctx); in cbor_builder_negint64_callback()
216 struct _cbor_decoder_context *ctx = context; in cbor_builder_byte_string_callback() local
217 CHECK_LENGTH(ctx, length); in cbor_builder_byte_string_callback()
220 ctx->creation_failed = true; in cbor_builder_byte_string_callback()
229 ctx->creation_failed = true; in cbor_builder_byte_string_callback()
237 if (ctx->stack->size > 0 && cbor_isa_bytestring(ctx->stack->top->item) && in cbor_builder_byte_string_callback()
238 cbor_bytestring_is_indefinite(ctx->stack->top->item)) { in cbor_builder_byte_string_callback()
239 if (!cbor_bytestring_add_chunk(ctx->stack->top->item, new_chunk)) { in cbor_builder_byte_string_callback()
240 ctx->creation_failed = true; in cbor_builder_byte_string_callback()
244 _cbor_builder_append(new_chunk, ctx); in cbor_builder_byte_string_callback()
249 struct _cbor_decoder_context *ctx = context; in cbor_builder_byte_string_start_callback() local
251 CHECK_RES(ctx, res); in cbor_builder_byte_string_start_callback()
252 PUSH_CTX_STACK(ctx, res, 0); in cbor_builder_byte_string_start_callback()
257 struct _cbor_decoder_context *ctx = context; in cbor_builder_string_callback() local
258 CHECK_LENGTH(ctx, length); in cbor_builder_string_callback()
262 ctx->creation_failed = true; in cbor_builder_string_callback()
270 ctx->creation_failed = true; in cbor_builder_string_callback()
277 if (ctx->stack->size > 0 && cbor_isa_string(ctx->stack->top->item) && in cbor_builder_string_callback()
278 cbor_string_is_indefinite(ctx->stack->top->item)) { in cbor_builder_string_callback()
279 if (!cbor_string_add_chunk(ctx->stack->top->item, new_chunk)) { in cbor_builder_string_callback()
280 ctx->creation_failed = true; in cbor_builder_string_callback()
284 _cbor_builder_append(new_chunk, ctx); in cbor_builder_string_callback()
289 struct _cbor_decoder_context *ctx = context; in cbor_builder_string_start_callback() local
291 CHECK_RES(ctx, res); in cbor_builder_string_start_callback()
292 PUSH_CTX_STACK(ctx, res, 0); in cbor_builder_string_start_callback()
296 struct _cbor_decoder_context *ctx = context; in cbor_builder_array_start_callback() local
297 CHECK_LENGTH(ctx, size); in cbor_builder_array_start_callback()
299 CHECK_RES(ctx, res); in cbor_builder_array_start_callback()
301 PUSH_CTX_STACK(ctx, res, size); in cbor_builder_array_start_callback()
303 _cbor_builder_append(res, ctx); in cbor_builder_array_start_callback()
308 struct _cbor_decoder_context *ctx = context; in cbor_builder_indef_array_start_callback() local
310 CHECK_RES(ctx, res); in cbor_builder_indef_array_start_callback()
311 PUSH_CTX_STACK(ctx, res, 0); in cbor_builder_indef_array_start_callback()
315 struct _cbor_decoder_context *ctx = context; in cbor_builder_indef_map_start_callback() local
317 CHECK_RES(ctx, res); in cbor_builder_indef_map_start_callback()
318 PUSH_CTX_STACK(ctx, res, 0); in cbor_builder_indef_map_start_callback()
322 struct _cbor_decoder_context *ctx = context; in cbor_builder_map_start_callback() local
323 CHECK_LENGTH(ctx, size); in cbor_builder_map_start_callback()
325 CHECK_RES(ctx, res); in cbor_builder_map_start_callback()
327 PUSH_CTX_STACK(ctx, res, size * 2); in cbor_builder_map_start_callback()
329 _cbor_builder_append(res, ctx); in cbor_builder_map_start_callback()
354 struct _cbor_decoder_context *ctx = context; in cbor_builder_indef_break_callback() local
356 if (ctx->stack->size > 0) { in cbor_builder_indef_break_callback()
357 cbor_item_t *item = ctx->stack->top->item; in cbor_builder_indef_break_callback()
362 (item->type != CBOR_TYPE_MAP || ctx->stack->top->subitems % 2 == 0)) { in cbor_builder_indef_break_callback()
363 _cbor_stack_pop(ctx->stack); in cbor_builder_indef_break_callback()
364 _cbor_builder_append(item, ctx); in cbor_builder_indef_break_callback()
369 ctx->syntax_error = true; in cbor_builder_indef_break_callback()
373 struct _cbor_decoder_context *ctx = context; in cbor_builder_float2_callback() local
375 CHECK_RES(ctx, res); in cbor_builder_float2_callback()
377 _cbor_builder_append(res, ctx); in cbor_builder_float2_callback()
381 struct _cbor_decoder_context *ctx = context; in cbor_builder_float4_callback() local
383 CHECK_RES(ctx, res); in cbor_builder_float4_callback()
385 _cbor_builder_append(res, ctx); in cbor_builder_float4_callback()
389 struct _cbor_decoder_context *ctx = context; in cbor_builder_float8_callback() local
391 CHECK_RES(ctx, res); in cbor_builder_float8_callback()
393 _cbor_builder_append(res, ctx); in cbor_builder_float8_callback()
397 struct _cbor_decoder_context *ctx = context; in cbor_builder_null_callback() local
399 CHECK_RES(ctx, res); in cbor_builder_null_callback()
400 _cbor_builder_append(res, ctx); in cbor_builder_null_callback()
404 struct _cbor_decoder_context *ctx = context; in cbor_builder_undefined_callback() local
406 CHECK_RES(ctx, res); in cbor_builder_undefined_callback()
407 _cbor_builder_append(res, ctx); in cbor_builder_undefined_callback()
411 struct _cbor_decoder_context *ctx = context; in cbor_builder_boolean_callback() local
413 CHECK_RES(ctx, res); in cbor_builder_boolean_callback()
414 _cbor_builder_append(res, ctx); in cbor_builder_boolean_callback()
418 struct _cbor_decoder_context *ctx = context; in cbor_builder_tag_callback() local
420 CHECK_RES(ctx, res); in cbor_builder_tag_callback()
421 PUSH_CTX_STACK(ctx, res, 1); in cbor_builder_tag_callback()