aboutsummaryrefslogtreecommitdiff
path: root/contrib/jsonb_plpython/jsonb_plpython.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2020-01-30 18:25:56 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2020-01-30 18:26:15 -0500
commit39428be9ce8f4fa124ad6207e18e57c6c2478316 (patch)
treef427ee3fab03eaf5502eafd4f894dc49ae2cace6 /contrib/jsonb_plpython/jsonb_plpython.c
parent2c56b3ac436db2d24aa11bdd22f45becf2030607 (diff)
downloadpostgresql-39428be9ce8f4fa124ad6207e18e57c6c2478316.tar.gz
postgresql-39428be9ce8f4fa124ad6207e18e57c6c2478316.zip
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
Diffstat (limited to 'contrib/jsonb_plpython/jsonb_plpython.c')
-rw-r--r--contrib/jsonb_plpython/jsonb_plpython.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/contrib/jsonb_plpython/jsonb_plpython.c b/contrib/jsonb_plpython/jsonb_plpython.c
index 1bc984d5c4d..67565042c63 100644
--- a/contrib/jsonb_plpython/jsonb_plpython.c
+++ b/contrib/jsonb_plpython/jsonb_plpython.c
@@ -367,7 +367,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)))
@@ -378,11 +377,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;