diff options
Diffstat (limited to 'src/common/jsonapi.c')
-rw-r--r-- | src/common/jsonapi.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/common/jsonapi.c b/src/common/jsonapi.c index 44dbb7f7f96..9dfbc397c06 100644 --- a/src/common/jsonapi.c +++ b/src/common/jsonapi.c @@ -488,19 +488,18 @@ freeJsonLexContext(JsonLexContext *lex) if (lex->errormsg) destroyStringInfo(lex->errormsg); - if (lex->flags & JSONLEX_FREE_STRUCT) + if (lex->incremental) { - if (lex->incremental) - { - pfree(lex->inc_state->partial_token.data); - pfree(lex->inc_state); - pfree(lex->pstack->prediction); - pfree(lex->pstack->fnames); - pfree(lex->pstack->fnull); - pfree(lex->pstack); - } - pfree(lex); + pfree(lex->inc_state->partial_token.data); + pfree(lex->inc_state); + pfree(lex->pstack->prediction); + pfree(lex->pstack->fnames); + pfree(lex->pstack->fnull); + pfree(lex->pstack); } + + if (lex->flags & JSONLEX_FREE_STRUCT) + pfree(lex); } /* |