ftp.nice.ch/Attic/openStep/developer/resources/MiscKitArchive.mbox.tgz#/MiscKitArchive.mbox/Distributed_MiscStri_.attach/index.rtf

This is index.rtf in view mode; [Download] [Up]

I have put together a little client/server program to try out MiscStrings in a Distributed Objects environment.  The server seems to leak memory on every transaction, though.

Here's the protocol definition for my server:
	- (int)checkInString:(in MiscString *)s;

Here's the implementation:
	- (int)checkInString:(MiscString *)s
	{
   		 const char *cp = [s stringValue];
    		return strlen (cp);
	}
	
The problem is that every time the client sends a message to the server, the server leaks N bytes, when N is the length of the MiscString (including the terminating '\0')  for the *previous* message.

MallocDebug.app shows the call chain to the leak as:
	default  0x0625d120      4    
					 _NXDecodeChars, 
					idecodeData,
					 -[NXPortPortal decodeData:ofType:], 
					 -[NXMethodSignature decodeMethodRetFrom:withargs:atAddr:], 
					 -[NXProxy forward::],
					 _objc_msgForward,
					  -[CommServer checkInString:],
					  objc_msgSendv
					  
So how can this leak be avoided?

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.