diff options
author | Tom Lane | 2024-12-15 20:50:07 +0000 |
---|---|---|
committer | Tom Lane | 2024-12-15 20:50:07 +0000 |
commit | bf9165bb0c5cea71e1a9cfa0c584c4d176f6c36f (patch) | |
tree | 9a91f5ab346e35167b5b18ac9c6dadcc458cdf64 | |
parent | 530f89e648da3a5505920322dcd4e00e15559f66 (diff) |
Declare a couple of variables inside not outside a PG_TRY block.
I went through the buildfarm's reports of "warning: variable 'foo'
might be clobbered by 'longjmp' or 'vfork' [-Wclobbered]". As usual,
none of them are live problems according to my understanding of the
effects of setjmp/longjmp, to wit that local variables might revert
to their values as of PG_TRY entry, due to being kept in registers.
But I did happen to notice that XmlTableGetValue's "cstr" variable
doesn't need to be declared outside the PG_TRY block at all (thus
giving further proof that the -Wclobbered warning has little
connection to real problems). We might as well move it inside,
and "cur" too, in hopes of eliminating one of the bogus warnings.
-rw-r--r-- | src/backend/utils/adt/xml.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index 4ad5e04f48a..0898cb1be4c 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -4926,10 +4926,8 @@ XmlTableGetValue(TableFuncScanState *state, int colnum, Oid typid, int32 typmod, bool *isnull) { #ifdef USE_LIBXML - XmlTableBuilderData *xtCxt; Datum result = (Datum) 0; - xmlNodePtr cur; - char *cstr = NULL; + XmlTableBuilderData *xtCxt; volatile xmlXPathObjectPtr xpathobj = NULL; xtCxt = GetXmlTableBuilderPrivateData(state, "XmlTableGetValue"); @@ -4943,13 +4941,15 @@ XmlTableGetValue(TableFuncScanState *state, int colnum, *isnull = false; - cur = xtCxt->xpathobj->nodesetval->nodeTab[xtCxt->row_count - 1]; - Assert(xtCxt->xpathscomp[colnum] != NULL); PG_TRY(); { + xmlNodePtr cur; + char *cstr = NULL; + /* Set current node as entry point for XPath evaluation */ + cur = xtCxt->xpathobj->nodesetval->nodeTab[xtCxt->row_count - 1]; xtCxt->xpathcxt->node = cur; /* Evaluate column path */ |