bf96e50e44
- Introduced valgrind with a patch to respect flags and updated its configuration. - Added Vulkan ICD loader with CMake build configuration. - Implemented Waf build system with a custom build script and configuration. - Included Wayland protocols with Meson build system. - Added xcb-util-keysyms with autotools configuration. - Introduced Yasm with multiple patches for compatibility and improvements. - Added Yelp tools and XSL with Meson build configurations and necessary patches for POSIX compliance.
32 lines
1.2 KiB
Diff
32 lines
1.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Harald van Dijk <harald@gigawatt.nl>
|
|
Date: Thu, 15 Jun 2023 23:18:11 +0100
|
|
Subject: [PATCH] Fix handling of untranslated nodes
|
|
|
|
If a translation is missing, get_translated returns the node it was
|
|
called with. But ph_node when passed to get_translated is part of
|
|
another document and cannot just be reparented, it needs to be cloned.
|
|
The reparenting leaves things in an inconsistent state where references
|
|
intended to refer to nodes in the original document no longer do so, and
|
|
they may then be accessed from those references after the new document
|
|
has already been freed.
|
|
|
|
Fixes bug #36.
|
|
---
|
|
itstool.in | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/itstool.in b/itstool.in
|
|
index 8e8c657aa352..0e273b4c5bfa 100755
|
|
--- a/itstool.in
|
|
+++ b/itstool.in
|
|
@@ -1109,6 +1109,8 @@ class Document (object):
|
|
child.replaceNode(newnode)
|
|
else:
|
|
repl = self.get_translated(ph_node, translations, strict=strict, lang=lang)
|
|
+ if repl == ph_node:
|
|
+ repl = repl.copyNode(1)
|
|
child.replaceNode(repl)
|
|
scan_node(child)
|
|
try:
|