Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7741 → Rev 7740

/programs/cmm/lib/array.h
3,8 → 3,6
#ifndef INCLUDE_ARRAY_H
#define INCLUDE_ARRAY_H
 
#include "../lib/crc32.h"
 
// Array memory: [dword key][byte flags][dword left][dword right][dword value] -> 17 bytes = 1 position
// If key don't exists then value == 0
:struct Array
22,7 → 20,6
 
:void Array::reallocMemory(dword newSize)
{
newSize *= 17;
memory = realloc(memory, newSize);
lenInitSize = newSize;
}
37,27 → 34,25
IF (flags & 001b) && (DSDWORD[address] > key) RETURN recursiveIndex(key, DSDWORD[address + 9]); // right tree
RETURN address;
}
 
:byte Array::init(dword size)
{
dword pointer = 0;
if (!size) size = 8;
IF(!size) RETURN 0;
IF(!memory)
{
lenInitSize = size * 17;
memory = malloc(lenInitSize);
pointer = memory;
DSDWORD[pointer] = 0; pointer += 4;
DSBYTE[pointer] = 0; pointer += 1;
DSDWORD[pointer] = 0;pointer += 4;
DSDWORD[pointer] = 0;pointer += 4;
DSDWORD[pointer] = 0;
EBX = memory;
DSDWORD[EBX] = 0;
DSBYTE[EBX + 4] = 0;
DSDWORD[EBX + 5] = 0;
DSDWORD[EBX + 9] = 0;
DSDWORD[EBX + 13] = 0;
offsetMemory = 17;
RETURN 0xFF;
}
IF(size > lenInitSize)
{
reallocMemory(size);
reallocMemory(size * 17);
RETURN 0xFF;
}
RETURN 0;
102,11 → 97,11
DSDWORD[address + 13] = data;
RETURN 0xFF;
}
DSDWORD[newOffset] = key; newOffset+=4;
DSBYTE[newOffset] = 0; newOffset+=1;
DSDWORD[newOffset] = 0; newOffset+=4;
DSDWORD[newOffset] = 0; newOffset+=4;
DSDWORD[newOffset] = data;
DSDWORD[newOffset] = key;
DSBYTE[newOffset+4] = 0;
DSDWORD[newOffset+5] = 0;
DSDWORD[newOffset+9] = 0;
DSDWORD[newOffset+13] = data;
offsetMemory += 17;
RETURN 0xFF;
}
135,10 → 130,8
byte init(dword size);
};
 
:dword Dictionary::hash(dword text)
:dword Dictionary::hash(dword text) // max 255 bytes as strings => 4 byte or duble word hash
{
RETURN crc32(text, strlen(text));
/*
dword checkSum1 = 1;
dword checkSum2 = 0;
dword beginAddress = 0;
155,7 → 148,6
EAX = text - beginAddress;
EAX <<= 23;
RETURN EAX | checkSum2;
*/
}
 
:byte Dictionary::set(dword key, value)