postgres.git / summary / log / commit / refs

commit    a069218163704c44a8996e7e98e765c56e2b9c8e
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Thu Jan 30 23:25:55 2020 +0000
First released in: 13.0, 11.7, 12.2

    In jsonb_plpython.c, suppress warning message from gcc 10.
    
    Very recent gcc complains that PLyObject_ToJsonbValue could return
    a pointer to a local variable.  I think it's wrong; but the coding
    is fragile enough, and the savings of one palloc() minimal enough,
    that it seems better to just do a palloc() all the time.  (My other
    idea of tweaking the if-condition doesn't suppress the warning.)
    
    Back-patch to v11 where this code was introduced.
    
    Discussion: https://postgr.es/m/21547.1580170366@sss.pgh.pa.us


contrib/jsonb_plpython/jsonb_plpython.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/contrib/jsonb_plpython/jsonb_plpython.c b/contrib/jsonb_plpython/jsonb_plpython.c index b06ad9f9291..e09308daf07 100644 --- a/contrib/jsonb_plpython/jsonb_plpython.c +++ b/contrib/jsonb_plpython/jsonb_plpython.c @@ -410,7 +410,6 @@ PLyNumber_ToJsonbValue(PyObject *obj, JsonbValue *jbvNum) static JsonbValue * PLyObject_ToJsonbValue(PyObject *obj, JsonbParseState **jsonb_state, bool is_elem) { - JsonbValue buf; JsonbValue *out; if (!(PyString_Check(obj) || PyUnicode_Check(obj))) @@ -421,11 +420,7 @@ PLyObject_ToJsonbValue(PyObject *obj, JsonbParseState **jsonb_state, bool is_ele return PLyMapping_ToJsonbValue(obj, jsonb_state); } - /* Allocate JsonbValue in heap only if it is raw scalar value. */ - if (*jsonb_state) - out = &buf; - else - out = palloc(sizeof(JsonbValue)); + out = palloc(sizeof(JsonbValue)); if (obj == Py_None) out->type = jbvNull; [parent: 74618e77b43c]