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.