1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-22 22:28:02 +01:00

Fixed a really stupid crasing bug caused by those (unsigned char*) pointers

to data.
This commit is contained in:
dan
2000-04-14 06:18:38 +00:00
parent a6e19eed31
commit 74bbc24da2

View File

@@ -170,9 +170,8 @@ WMSetDataLength(WMData *aData, unsigned length) /*FOLD00*/
WMSetDataCapacity(aData, length); WMSetDataCapacity(aData, length);
} }
if (length > aData->length) { if (length > aData->length) {
unsigned char *dataBytes = (unsigned char *)aData->bytes; memset((unsigned char*)aData->bytes + aData->length, 0,
length - aData->length);
memset(dataBytes + aData->length, 0, length - aData->length);
} }
aData->length = length; aData->length = length;
} }
@@ -230,12 +229,11 @@ WMGetDataBytesWithLength(WMData *aData, void *buffer, unsigned length) /*FOLD00*
void void
WMGetDataBytesWithRange(WMData *aData, void *buffer, WMRange aRange) /*FOLD00*/ WMGetDataBytesWithRange(WMData *aData, void *buffer, WMRange aRange) /*FOLD00*/
{ {
unsigned char *dataBytes = (unsigned char *)aData->bytes;
wassertr(aRange.position < aData->length); wassertr(aRange.position < aData->length);
wassertr(aRange.count <= aData->length-aRange.position); 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 oldLength = aData->length;
unsigned newLength = oldLength + length; unsigned newLength = oldLength + length;
unsigned char *dataBytes = (unsigned char *)aData->bytes;
if (newLength > aData->capacity) { if (newLength > aData->capacity) {
unsigned nextCapacity = aData->capacity + aData->growth; unsigned nextCapacity = aData->capacity + aData->growth;
@@ -300,7 +297,7 @@ WMAppendDataBytes(WMData *aData, void *bytes, unsigned length) /*FOLD00*/
WMSetDataCapacity(aData, nextCapacity); WMSetDataCapacity(aData, nextCapacity);
aData->growth = nextGrowth; aData->growth = nextGrowth;
} }
memcpy(dataBytes + oldLength, bytes, length); memcpy((unsigned char*)aData->bytes + oldLength, bytes, length);
aData->length = newLength; aData->length = newLength;
} }
@@ -319,24 +316,20 @@ WMAppendData(WMData *aData, WMData *anotherData) /*FOLD00*/
void void
WMReplaceDataBytesInRange(WMData *aData, WMRange aRange, void *bytes) /*FOLD00*/ WMReplaceDataBytesInRange(WMData *aData, WMRange aRange, void *bytes) /*FOLD00*/
{ {
unsigned char *dataBytes = (unsigned char *)aData->bytes;
wassertr(aRange.position < aData->length); wassertr(aRange.position < aData->length);
wassertr(aRange.count <= aData->length-aRange.position); 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 void
WMResetDataBytesInRange(WMData *aData, WMRange aRange) /*FOLD00*/ WMResetDataBytesInRange(WMData *aData, WMRange aRange) /*FOLD00*/
{ {
unsigned char *dataBytes = (unsigned char *)aData->bytes;
wassertr(aRange.position < aData->length); wassertr(aRange.position < aData->length);
wassertr(aRange.count <= aData->length-aRange.position); wassertr(aRange.count <= aData->length-aRange.position);
memset(dataBytes + aRange.position, 0, aRange.count); memset((unsigned char*)aData->bytes + aRange.position, 0, aRange.count);
} }