[libxslt] Fix generate-id() to avoid generating the same ID
- From: Daniel Veillard <veillard src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libxslt] Fix generate-id() to avoid generating the same ID
- Date: Wed, 21 Nov 2012 03:14:48 +0000 (UTC)
commit d204e66735cb701e5b76e1489353faa48cfc6016
Author: Stewart Brodie <stewart eh org>
Date: Wed Nov 21 11:11:46 2012 +0800
Fix generate-id() to avoid generating the same ID
For nodes from different documents, especially for the document
node itself which would always get "idp0" as a result.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688171
libxslt/functions.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
---
diff --git a/libxslt/functions.c b/libxslt/functions.c
index c754994..dc61994 100644
--- a/libxslt/functions.c
+++ b/libxslt/functions.c
@@ -660,6 +660,7 @@ xsltFormatNumberFunction(xmlXPathParserContextPtr ctxt, int nargs)
*/
void
xsltGenerateIdFunction(xmlXPathParserContextPtr ctxt, int nargs){
+ static char base_address;
xmlNodePtr cur = NULL;
xmlXPathObjectPtr obj = NULL;
long val;
@@ -716,7 +717,7 @@ xsltGenerateIdFunction(xmlXPathParserContextPtr ctxt, int nargs){
if (obj)
xmlXPathFreeObject(obj);
- val = (long)((char *)cur - (char *)doc);
+ val = (long)((char *)cur - (char *)&base_address);
if (val >= 0) {
sprintf((char *)str, "idp%ld", val);
} else {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]