@@ -276,8 +276,6 @@ jsonb_push_object(jsonb *b, char buf[], size_t bufsize)
276276 if (b -> top - b -> stack >= JSONB_MAX_DEPTH )
277277 return JSONB_ERROR_STACK ;
278278 switch (* b -> top ) {
279- case JSONB_DONE :
280- return JSONB_ERROR_INPUT ;
281279 case JSONB_ARRAY_NEXT_VALUE_OR_CLOSE :
282280 BUFFER_COPY_CHAR (b , ',' , pos , buf , bufsize );
283281 /* fall-through */
@@ -295,6 +293,9 @@ jsonb_push_object(jsonb *b, char buf[], size_t bufsize)
295293 break ;
296294 default :
297295 STACK_HEAD (b , JSONB_ERROR );
296+ /* fall-through */
297+ case JSONB_DONE :
298+ case JSONB_ERROR :
298299 return JSONB_ERROR_INPUT ;
299300 }
300301 BUFFER_COPY_CHAR (b , '{' , pos , buf , bufsize );
@@ -319,6 +320,8 @@ jsonb_pop_object(jsonb *b, char buf[], size_t bufsize)
319320 break ;
320321 default :
321322 STACK_HEAD (b , JSONB_ERROR );
323+ /* fall-through */
324+ case JSONB_ERROR :
322325 return JSONB_ERROR_INPUT ;
323326 }
324327 BUFFER_COPY_CHAR (b , '}' , pos , buf , bufsize );
@@ -333,8 +336,6 @@ jsonb_push_key(
333336{
334337 size_t pos = 0 ;
335338 switch (* b -> top ) {
336- case JSONB_DONE :
337- return JSONB_ERROR_INPUT ;
338339 case JSONB_OBJECT_NEXT_KEY_OR_CLOSE :
339340 BUFFER_COPY_CHAR (b , ',' , pos , buf , bufsize );
340341 /* fall-through */
@@ -346,6 +347,8 @@ jsonb_push_key(
346347 break ;
347348 default :
348349 STACK_HEAD (b , JSONB_ERROR );
350+ /* fall-through */
351+ case JSONB_DONE :
349352 return JSONB_ERROR_INPUT ;
350353 }
351354 b -> pos += pos ;
@@ -361,8 +364,6 @@ jsonb_push_array(jsonb *b, char buf[], size_t bufsize)
361364 if (b -> top - b -> stack >= JSONB_MAX_DEPTH )
362365 return JSONB_ERROR_STACK ;
363366 switch (* b -> top ) {
364- case JSONB_DONE :
365- return JSONB_ERROR_INPUT ;
366367 case JSONB_ARRAY_NEXT_VALUE_OR_CLOSE :
367368 BUFFER_COPY_CHAR (b , ',' , pos , buf , bufsize );
368369 /* fall-through */
@@ -380,6 +381,8 @@ jsonb_push_array(jsonb *b, char buf[], size_t bufsize)
380381 break ;
381382 default :
382383 STACK_HEAD (b , JSONB_ERROR );
384+ /* fall-through */
385+ case JSONB_DONE :
383386 return JSONB_ERROR_INPUT ;
384387 }
385388 BUFFER_COPY_CHAR (b , '[' , pos , buf , bufsize );
@@ -396,7 +399,6 @@ jsonb_pop_array(jsonb *b, char buf[], size_t bufsize)
396399 size_t pos = 0 ;
397400 switch (* b -> top ) {
398401 case JSONB_DONE :
399- case JSONB_ERROR :
400402 code = JSONB_END ;
401403 break ;
402404 case JSONB_ARRAY_VALUE_OR_CLOSE :
@@ -405,6 +407,8 @@ jsonb_pop_array(jsonb *b, char buf[], size_t bufsize)
405407 break ;
406408 default :
407409 STACK_HEAD (b , JSONB_ERROR );
410+ /* fall-through */
411+ case JSONB_ERROR :
408412 return JSONB_ERROR_INPUT ;
409413 }
410414 BUFFER_COPY_CHAR (b , ']' , pos , buf , bufsize );
@@ -421,9 +425,6 @@ jsonb_push_token(
421425 enum jsonbcode code ;
422426 size_t pos = 0 ;
423427 switch (* b -> top ) {
424- case JSONB_DONE :
425- case JSONB_ERROR :
426- return JSONB_ERROR_INPUT ;
427428 case JSONB_ARRAY_OR_OBJECT_OR_VALUE :
428429 next_state = JSONB_DONE ;
429430 code = JSONB_END ;
@@ -441,6 +442,9 @@ jsonb_push_token(
441442 break ;
442443 default :
443444 STACK_HEAD (b , JSONB_ERROR );
445+ /* fall-through */
446+ case JSONB_DONE :
447+ case JSONB_ERROR :
444448 return JSONB_ERROR_INPUT ;
445449 }
446450 BUFFER_COPY (b , token , len , pos , buf , bufsize );
@@ -532,9 +536,6 @@ jsonb_push_string(
532536 enum jsonbcode code , ret ;
533537 size_t pos = 0 ;
534538 switch (* b -> top ) {
535- case JSONB_DONE :
536- case JSONB_ERROR :
537- return JSONB_ERROR_INPUT ;
538539 case JSONB_ARRAY_OR_OBJECT_OR_VALUE :
539540 next_state = JSONB_DONE ;
540541 code = JSONB_END ;
@@ -552,6 +553,9 @@ jsonb_push_string(
552553 break ;
553554 default :
554555 STACK_HEAD (b , JSONB_ERROR );
556+ /* fall-through */
557+ case JSONB_DONE :
558+ case JSONB_ERROR :
555559 return JSONB_ERROR_INPUT ;
556560 }
557561 BUFFER_COPY_CHAR (b , '"' , pos , buf , bufsize );
0 commit comments