From 74bbc24da2ec3663640bda0b97923ba48a068a4f Mon Sep 17 00:00:00 2001 From: dan Date: Fri, 14 Apr 2000 06:18:38 +0000 Subject: [PATCH] Fixed a really stupid crasing bug caused by those (unsigned char*) pointers to data. --- WINGs/data.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/WINGs/data.c b/WINGs/data.c index d7322528..3efc67d8 100644 --- a/WINGs/data.c +++ b/WINGs/data.c @@ -170,9 +170,8 @@ WMSetDataLength(WMData *aData, unsigned length) /*FOLD00*/ WMSetDataCapacity(aData, length); } if (length > aData->length) { - unsigned char *dataBytes = (unsigned char *)aData->bytes; - - memset(dataBytes + aData->length, 0, length - aData->length); + memset((unsigned char*)aData->bytes + aData->length, 0, + length - aData->length); } aData->length = length; } @@ -230,12 +229,11 @@ WMGetDataBytesWithLength(WMData *aData, void *buffer, unsigned length) /*FOLD00* void WMGetDataBytesWithRange(WMData *aData, void *buffer, WMRange aRange) /*FOLD00*/ { - unsigned char *dataBytes = (unsigned char *)aData->bytes; - wassertr(aRange.position < aData->length); wassertr(aRange.count <= aData->length-aRange.position); - memcpy(buffer,dataBytes + aRange.position, aRange.count); + memcpy(buffer, (unsigned char*)aData->bytes + aRange.position, + aRange.count); } @@ -285,7 +283,6 @@ WMAppendDataBytes(WMData *aData, void *bytes, unsigned length) /*FOLD00*/ { unsigned oldLength = aData->length; unsigned newLength = oldLength + length; - unsigned char *dataBytes = (unsigned char *)aData->bytes; if (newLength > aData->capacity) { unsigned nextCapacity = aData->capacity + aData->growth; @@ -300,7 +297,7 @@ WMAppendDataBytes(WMData *aData, void *bytes, unsigned length) /*FOLD00*/ WMSetDataCapacity(aData, nextCapacity); aData->growth = nextGrowth; } - memcpy(dataBytes + oldLength, bytes, length); + memcpy((unsigned char*)aData->bytes + oldLength, bytes, length); aData->length = newLength; } @@ -319,24 +316,20 @@ WMAppendData(WMData *aData, WMData *anotherData) /*FOLD00*/ void WMReplaceDataBytesInRange(WMData *aData, WMRange aRange, void *bytes) /*FOLD00*/ { - unsigned char *dataBytes = (unsigned char *)aData->bytes; - wassertr(aRange.position < aData->length); wassertr(aRange.count <= aData->length-aRange.position); - memcpy(dataBytes + aRange.position, bytes, aRange.count); + memcpy((unsigned char*)aData->bytes + aRange.position, bytes, aRange.count); } void WMResetDataBytesInRange(WMData *aData, WMRange aRange) /*FOLD00*/ { - unsigned char *dataBytes = (unsigned char *)aData->bytes; - wassertr(aRange.position < aData->length); wassertr(aRange.count <= aData->length-aRange.position); - memset(dataBytes + aRange.position, 0, aRange.count); + memset((unsigned char*)aData->bytes + aRange.position, 0, aRange.count); }