summaryrefslogtreecommitdiff
path: root/contrib/jsonb_plperl
diff options
context:
space:
mode:
authorTom Lane2018-04-03 18:47:26 +0000
committerTom Lane2018-04-03 18:47:26 +0000
commitd4a4c3d5b433513fc38ce60e454d2c86e8bd0ed4 (patch)
tree9578c3c4a3319add92482c60fadac29a56dbceae /contrib/jsonb_plperl
parent242408dbef283ff148a3a671a7f4ebbad6118b22 (diff)
Suppress compiler warning in new jsonb_plperl code.
Some compilers are evidently pickier than others about whether Perl's I32 typedef should be considered equivalent to int. Dodge the problem by using a separate variable; the prior coding was a bit confusing anyway. Per buildfarm. Note this does nothing to fix the test failures due to SV_to_JsonbValue not covering enough variable types.
Diffstat (limited to 'contrib/jsonb_plperl')
-rw-r--r--contrib/jsonb_plperl/jsonb_plperl.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/contrib/jsonb_plperl/jsonb_plperl.c b/contrib/jsonb_plperl/jsonb_plperl.c
index 918debdddb7..ad9e65516f1 100644
--- a/contrib/jsonb_plperl/jsonb_plperl.c
+++ b/contrib/jsonb_plperl/jsonb_plperl.c
@@ -150,6 +150,8 @@ HV_to_JsonbValue(HV *obj, JsonbParseState **jsonb_state)
dTHX;
JsonbValue key;
SV *val;
+ char *kstr;
+ I32 klen;
key.type = jbvString;
@@ -157,9 +159,10 @@ HV_to_JsonbValue(HV *obj, JsonbParseState **jsonb_state)
(void) hv_iterinit(obj);
- while ((val = hv_iternextsv(obj, &key.val.string.val, &key.val.string.len)))
+ while ((val = hv_iternextsv(obj, &kstr, &klen)))
{
- key.val.string.val = pnstrdup(key.val.string.val, key.val.string.len);
+ key.val.string.val = pnstrdup(kstr, klen);
+ key.val.string.len = klen;
pushJsonbValue(jsonb_state, WJB_KEY, &key);
(void) SV_to_JsonbValue(val, jsonb_state, false);
}