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);
}
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);
}