From ec615dc3b52d4faafbebd7b4229fd4a1ea2a75ee Mon Sep 17 00:00:00 2001
From: Michele Calgaro <michele.calgaro@yahoo.it>
Date: Sun, 18 Jan 2026 14:14:58 +0900
Subject: Don't look up '0-serialized' pointers in TQGDict. This replaces PR
 #263

It makes no logical sense to serialize a pointer value and in fact 0 is written. So the call to look_ptr is never executed when deserializing a pointer.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
---
 src/tools/tqgdict.cpp | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/src/tools/tqgdict.cpp b/src/tools/tqgdict.cpp
index d810cbe0f..b587eb9fb 100644
--- a/src/tools/tqgdict.cpp
+++ b/src/tools/tqgdict.cpp
@@ -945,12 +945,8 @@ TQDataStream &TQGDict::read( TQDataStream &s )
 		    TQ_UINT32 k;
 		    s >> k;
 		    read( s, d );
-		    // ### cannot insert 0 - this renders the thing
-		    // useless since all pointers are written as 0,
-		    // but hey, serializing pointers?  can it be done
-		    // at all, ever?
-		    if ( k )
-			look_ptr( (void *)k, d, op_insert );
+		    // Pointer real values are not serialized, so it doesn't make sense
+		    // to insert null values back into the dictionary by calling 'look_ptr' here
 		}
 		break;
 	}
@@ -980,7 +976,7 @@ TQDataStream& TQGDict::write( TQDataStream &s ) const
 		    s << (TQ_UINT32)((TQIntBucket*)n)->getKey();
 		    break;
 		case PtrKey:
-		    s << (TQ_UINT32)0; // ### cannot serialize a pointer
+		    s << (TQ_UINT32)0; // ### it doesn't make sense to serialize a pointer's value
 		    break;
 	    }
 	    write( s, n->getData() );		// write data
-- 
cgit v1.2.3

