From 9cdc66cc84f5f5dd4d34df00eb3c0d4b03955953 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 11 Dec 2011 16:29:51 +0000 Subject: [PATCH] Don't override existing entries when inheriting various hashes. Check if the value being inherited doesn't already exist for the derived class: if it does, we must not overwrite it. Fixes regression introduced in r12865. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12874 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Source/Swig/naming.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/Swig/naming.c b/Source/Swig/naming.c index a35a92ac7..1be1405a3 100644 --- a/Source/Swig/naming.c +++ b/Source/Swig/naming.c @@ -590,11 +590,12 @@ void Swig_name_object_inherit(Hash *namehash, String *base, String *derived) { Hash *n = ki.item; Hash *newh; - if (!derh) - derh = NewHash(); - - newh = Getattr(derh, nkey); + /* Don't overwrite an existing value for the derived class, if any. */ + newh = Getattr(namehash, nkey); if (!newh) { + if (!derh) + derh = NewHash(); + newh = NewHash(); Setattr(derh, nkey, newh); Delete(newh);