- SerialBuffer buffer1 { size = count1, count = count1, buffer = (byte *)data1 };
- SerialBuffer buffer2 { size = count2, count = count2, buffer = (byte *)data2 };
-
- inst1 = new0 byte[type.structSize];
- inst2 = new0 byte[type.structSize];
+ //SerialBuffer buffer1 { size = count1, count = count1, buffer = (byte *)data1 };
+ //SerialBuffer buffer2 { size = count2, count = count2, buffer = (byte *)data2 };
+
+ SerialBuffer buffer1 = collationBuffer1;
+ SerialBuffer buffer2 = collationBuffer2;
+ buffer1.buffer = (byte*)data1;
+ buffer1.size = count1;
+ buffer1.count = count1;
+ buffer1.pos = 0;
+ buffer2.buffer = (byte*)data2;
+ buffer2.size = count2;
+ buffer2.count = count2;
+ buffer2.pos = 0;
+
+ if(type.structSize > 512)
+ {
+ inst1 = new0 byte[type.structSize];
+ inst2 = new0 byte[type.structSize];
+ }
+ else
+ {
+ inst1 = storage1;
+ inst2 = storage2;
+ }