diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2024-12-15 15:50:07 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2024-12-15 15:50:07 -0500 |
commit | bf9165bb0c5cea71e1a9cfa0c584c4d176f6c36f (patch) | |
tree | 9a91f5ab346e35167b5b18ac9c6dadcc458cdf64 /src/backend/utils/adt/xml.c | |
parent | 530f89e648da3a5505920322dcd4e00e15559f66 (diff) | |
download | postgresql-bf9165bb0c5cea71e1a9cfa0c584c4d176f6c36f.tar.gz postgresql-bf9165bb0c5cea71e1a9cfa0c584c4d176f6c36f.zip |
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.
Diffstat (limited to 'src/backend/utils/adt/xml.c')
-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 */ |