@@ -78,12 +78,12 @@ { @throw [OFNotImplementedException newWithClass: isa selector: _cmd]; } -- (size_t)_writeNBytes: (size_t)length - fromBuffer: (const void*)buffer +- (void)_writeNBytes: (size_t)length + fromBuffer: (const void*)buffer { @throw [OFNotImplementedException newWithClass: isa selector: _cmd]; } @@ -623,23 +623,21 @@ [self freeMemory: writeBuffer]; writeBuffer = NULL; writeBufferLength = 0; } -- (size_t)writeNBytes: (size_t)length - fromBuffer: (const void*)buffer +- (void)writeNBytes: (size_t)length + fromBuffer: (const void*)buffer { if (!buffersWrites) - return [self _writeNBytes: length - fromBuffer: buffer]; + [self _writeNBytes: length + fromBuffer: buffer]; else { writeBuffer = [self resizeMemory: writeBuffer toSize: writeBufferLength + length]; memcpy(writeBuffer + writeBufferLength, buffer, length); writeBufferLength += length; - - return length; } } - (void)writeInt8: (uint8_t)int8 { @@ -727,38 +725,46 @@ fromBuffer: (char*)&double_]; } - (size_t)writeDataArray: (OFDataArray*)dataArray { - return [self writeNBytes: [dataArray count] * [dataArray itemSize] - fromBuffer: [dataArray cArray]]; + size_t length = [dataArray count] * [dataArray itemSize]; + + [self writeNBytes: length + fromBuffer: [dataArray cArray]]; + + return [dataArray count] * [dataArray itemSize]; } - (size_t)writeString: (OFString*)string { - return [self writeNBytes: [string cStringLength] - fromBuffer: [string cString]]; + size_t length = [string cStringLength]; + + [self writeNBytes: length + fromBuffer: [string cString]]; + + return length; } - (size_t)writeLine: (OFString*)string { - size_t retLength, stringLength = [string cStringLength]; + size_t stringLength = [string cStringLength]; char *buffer; buffer = [self allocMemoryWithSize: stringLength + 1]; @try { memcpy(buffer, [string cString], stringLength); buffer[stringLength] = '\n'; - retLength = [self writeNBytes: stringLength + 1 - fromBuffer: buffer]; + [self writeNBytes: stringLength + 1 + fromBuffer: buffer]; } @finally { [self freeMemory: buffer]; } - return retLength; + return stringLength + 1; } - (size_t)writeFormat: (OFString*)format, ... { va_list arguments; @@ -785,18 +791,17 @@ if ((length = of_vasprintf(&cString, [format cString], arguments)) == -1) @throw [OFInvalidFormatException newWithClass: isa]; @try { - return [self writeNBytes: length - fromBuffer: cString]; + [self writeNBytes: length + fromBuffer: cString]; } @finally { free(cString); } - /* Get rid of a warning, never reached anyway */ - assert(0); + return length; } - (size_t)pendingBytes { return cacheLength;