Commit 5811033c authored by Ivan Donchevskiy's avatar Ivan Donchevskiy

Writing fields in classes CycleStorage and TableBlockStorage using memcpy

parent 30d0f9a7
...@@ -209,8 +209,7 @@ bool CycleStorage::AddRow(char* str) ...@@ -209,8 +209,7 @@ bool CycleStorage::AddRow(char* str)
if(head==-1) if(head==-1)
{ {
jrn->status=1; jrn->status=1;
for(k=0;k<inf_size;k++) memcpy((void*)((char*)jrn+sizeof(CycleStorageElem)),(void*)str,inf_size);
*((char*)(jrn)+sizeof(CycleStorageElem)+k)=*(str+k);
filewrite(jrn,0); filewrite(jrn,0);
head=0; head=0;
tail=0; tail=0;
...@@ -219,8 +218,7 @@ bool CycleStorage::AddRow(char* str) ...@@ -219,8 +218,7 @@ bool CycleStorage::AddRow(char* str)
if(head==tail) if(head==tail)
{ {
jrn->status=2; jrn->status=2;
for(k=0;k<inf_size;k++) memcpy((void*)((char*)jrn+sizeof(CycleStorageElem)),(void*)str,inf_size);
*((char*)(jrn)+sizeof(CycleStorageElem)+k)=*(str+k);
filewrite(jrn,1); filewrite(jrn,1);
tail=1; tail=1;
return true; return true;
...@@ -242,8 +240,7 @@ bool CycleStorage::AddRow(char* str) ...@@ -242,8 +240,7 @@ bool CycleStorage::AddRow(char* str)
if(jrn->status==0) if(jrn->status==0)
{ {
jrn->status=2; jrn->status=2;
for(k=0;k<inf_size;k++) memcpy((void*)((char*)jrn+sizeof(CycleStorageElem)),(void*)str,inf_size);
*((char*)(jrn)+sizeof(CycleStorageElem)+k)=*(str+k);
filewrite(jrn,tail); filewrite(jrn,tail);
return true; return true;
} }
...@@ -252,8 +249,7 @@ bool CycleStorage::AddRow(char* str) ...@@ -252,8 +249,7 @@ bool CycleStorage::AddRow(char* str)
head++; head++;
if(head>=size) head=0; if(head>=size) head=0;
jrn->status=i; jrn->status=i;
for(k=0;k<inf_size;k++) memcpy((void*)((char*)jrn+sizeof(CycleStorageElem)),(void*)str,inf_size);
*((char*)(jrn)+sizeof(CycleStorageElem)+k)=*(str+k);
filewrite(jrn,tail); filewrite(jrn,tail);
fseek(file,seekpos+head*(sizeof(CycleStorageElem)+inf_size),0); fseek(file,seekpos+head*(sizeof(CycleStorageElem)+inf_size),0);
fread(jrn,(sizeof(CycleStorageElem)+inf_size),1,file); fread(jrn,(sizeof(CycleStorageElem)+inf_size),1,file);
......
...@@ -246,16 +246,13 @@ bool TableBlockStorage::AddRow(char* key, char* value) ...@@ -246,16 +246,13 @@ bool TableBlockStorage::AddRow(char* key, char* value)
if(pos>=0) if(pos>=0)
{ {
mem[pos]->count=++max; mem[pos]->count=++max;
for(k=0;k<inf_size;k++) memcpy((void*)((char*)mem[pos]+sizeof(TableBlockStorageElem)+k_size),(void*)value,inf_size);
*((char*)mem[pos]+sizeof(TableBlockStorageElem)+k_size+k)=*(value+k);
filewrite(mem[pos],cur_block*block_size+pos); filewrite(mem[pos],cur_block*block_size+pos);
return true;; return true;;
} }
mem[empty]->count=++max; mem[empty]->count=++max;
for(k=0;k<k_size;k++) memcpy((void*)((char*)mem[empty]+sizeof(TableBlockStorageElem)),(void*)key,k_size);
*((char*)mem[empty]+sizeof(TableBlockStorageElem)+k)=*(key+k); memcpy((void*)((char*)mem[empty]+sizeof(TableBlockStorageElem)+k_size),(void*)value,inf_size);
for(k=0;k<inf_size;k++)
*((char*)mem[empty]+sizeof(TableBlockStorageElem)+k_size+k)=*(value+k);
filewrite(mem[empty],cur_block*block_size+empty); filewrite(mem[empty],cur_block*block_size+empty);
return true; return true;
} }
...@@ -290,8 +287,7 @@ char* TableBlockStorage::FindKeyValue(char* key, char* val) ...@@ -290,8 +287,7 @@ char* TableBlockStorage::FindKeyValue(char* key, char* val)
if((*((char*)mem[i]+sizeof(TableBlockStorageElem))!=0)&&(mem[i]>=0)) if((*((char*)mem[i]+sizeof(TableBlockStorageElem))!=0)&&(mem[i]>=0))
if(KeyCompare((char*)mem[i],key,k_size)) if(KeyCompare((char*)mem[i],key,k_size))
{ {
for(k=0;k<inf_size;k++) memcpy((void*)val,(void*)((char*)mem[i]+sizeof(TableBlockStorageElem)+k_size),inf_size);
*(val+k)=*((char*)mem[i]+sizeof(TableBlockStorageElem)+k_size+k);
return val; return val;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment