diff --git a/ChangeLog b/ChangeLog index 5950ebce4..274359b57 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Tue Sep 12 14:00:00 1999 Richard Frith-Macdonald + + * Source/NSConnection.m: Removed pointer cross-reference support as it + provided little performance improvement and was responsible for a few + bugs I've never been able to track down, and major problems if the maps + at either end of the link get out of sync (which is unavoidable in some + rare circumstances). + * Headers/Foundation/NSConnection.h: Removed cross-reference maps + * Source/ConnectedCoder.m: Removed pointer cross-reference support + * Source/NSPortCoder.m: Removed pointer cross-reference support + Fri Sep 8 12:05:00 1999 Richard Frith-Macdonald * configure.in: Correct path to include file for checking thread support diff --git a/Headers/gnustep/base/NSConnection.h b/Headers/gnustep/base/NSConnection.h index 62a2bc853..28e8cbbc1 100644 --- a/Headers/gnustep/base/NSConnection.h +++ b/Headers/gnustep/base/NSConnection.h @@ -75,8 +75,6 @@ extern NSString *NSConnectionProxyCount; /* Objects received */ Class receive_port_class; Class send_port_class; Class encoding_class; - NSMapTable *incoming_xref_2_const_ptr; - NSMapTable *outgoing_const_ptr_2_xref; id delegate; NSMutableArray *request_modes; } @@ -234,10 +232,6 @@ extern NSString *NSConnectionProxyCount; /* Objects received */ selector: (SEL)sel argFrame: (arglist_t)frame; - (const char *) typeForSelector: (SEL)sel remoteTarget: (unsigned)target; -- (unsigned) _encoderReferenceForConstPtr: (const void*)ptr; -- (const void*) _decoderConstPtrAtReference: (unsigned)xref; -- (unsigned) _encoderCreateReferenceForConstPtr: (const void*)ptr; -- (unsigned) _decoderCreateReferenceForConstPtr: (const void*)ptr; @end diff --git a/Source/ConnectedCoder.m b/Source/ConnectedCoder.m index 49f42a691..9b29f5902 100644 --- a/Source/ConnectedCoder.m +++ b/Source/ConnectedCoder.m @@ -115,12 +115,12 @@ static BOOL debug_connected_coder = NO; - (unsigned) _coderReferenceForConstPtr: (const void*)ptr { - return [connection _encoderReferenceForConstPtr: ptr]; + return 0; } - (unsigned) _coderCreateReferenceForConstPtr: (const void*)ptr { - return [connection _encoderCreateReferenceForConstPtr: ptr]; + return 0; } @@ -222,12 +222,12 @@ static BOOL debug_connected_coder = NO; - (unsigned) _coderCreateReferenceForConstPtr: (const void*)ptr { - return [connection _decoderCreateReferenceForConstPtr: ptr]; + return 0; } - (const void*) _coderConstPtrAtReference: (unsigned)xref { - return [connection _decoderConstPtrAtReference: xref]; + return 0; } diff --git a/Source/NSConnection.m b/Source/NSConnection.m index 7de83dfed..e631345bc 100644 --- a/Source/NSConnection.m +++ b/Source/NSConnection.m @@ -707,8 +707,6 @@ static int messages_received_count; NSFreeMapTable (remote_proxies); NSFreeMapTable (local_objects); NSFreeMapTable (local_targets); - NSFreeMapTable (incoming_xref_2_const_ptr); - NSFreeMapTable (outgoing_const_ptr_2_xref); [proxiesHashGate unlock]; [arp release]; @@ -945,13 +943,6 @@ static int messages_received_count; NSCreateMapTable (NSIntMapKeyCallBacks, NSNonOwnedPointerMapValueCallBacks, 0); - newConn->incoming_xref_2_const_ptr = - NSCreateMapTable (NSIntMapKeyCallBacks, - NSNonOwnedPointerMapValueCallBacks, 0); - newConn->outgoing_const_ptr_2_xref = - NSCreateMapTable (NSIntMapKeyCallBacks, - NSNonOwnedPointerMapValueCallBacks, 0); - newConn->reply_timeout = [self defaultInTimeout]; newConn->request_timeout = [self defaultOutTimeout]; newConn->encoding_class = default_encoding_class; @@ -2255,45 +2246,6 @@ static int messages_received_count; return default_decoding_class; } - -/* Support for cross-connection const-ptr cache. */ - -- (unsigned) _encoderCreateReferenceForConstPtr: (const void*)ptr -{ - unsigned xref; - - NSParameterAssert (is_valid); - /* This must match the assignment of xref in _decoderCreateRef... */ - xref = NSCountMapTable (outgoing_const_ptr_2_xref) + 1; - NSParameterAssert (! NSMapGet (outgoing_const_ptr_2_xref, (void*)xref)); - NSMapInsert (outgoing_const_ptr_2_xref, ptr, (void*)xref); - return xref; -} - -- (unsigned) _encoderReferenceForConstPtr: (const void*)ptr -{ - NSParameterAssert (is_valid); - return (unsigned) NSMapGet (outgoing_const_ptr_2_xref, ptr); -} - -- (unsigned) _decoderCreateReferenceForConstPtr: (const void*)ptr -{ - unsigned xref; - - NSParameterAssert (is_valid); - /* This must match the assignment of xref in _encoderCreateRef... */ - xref = NSCountMapTable (incoming_xref_2_const_ptr) + 1; - NSMapInsert (incoming_xref_2_const_ptr, (void*)xref, ptr); - return xref; -} - -- (const void*) _decoderConstPtrAtReference: (unsigned)xref -{ - NSParameterAssert (is_valid); - return NSMapGet (incoming_xref_2_const_ptr, (void*)xref); -} - - /* Prevent trying to encode the connection itself */ diff --git a/Source/NSPortCoder.m b/Source/NSPortCoder.m index 2acea8866..5f2e7eee8 100644 --- a/Source/NSPortCoder.m +++ b/Source/NSPortCoder.m @@ -162,12 +162,12 @@ static BOOL debug_connected_coder = NO; - (unsigned) _coderReferenceForConstPtr: (const void*)ptr { - return [connection _encoderReferenceForConstPtr: ptr]; +return 0; } - (unsigned) _coderCreateReferenceForConstPtr: (const void*)ptr { - return [connection _encoderCreateReferenceForConstPtr: ptr]; +return 0; } @@ -341,12 +341,12 @@ static BOOL debug_connected_coder = NO; - (unsigned) _coderCreateReferenceForConstPtr: (const void*)ptr { - return [connection _decoderCreateReferenceForConstPtr: ptr]; + return 0; } - (const void*) _coderConstPtrAtReference: (unsigned)xref { - return [connection _decoderConstPtrAtReference: xref]; + return 0; }