Objects adding dict test & fixes
This commit is contained in:
parent
63029e6083
commit
a679ab1c4b
6 changed files with 56 additions and 6 deletions
|
|
@ -221,7 +221,7 @@ namespace obj {
|
|||
ndf << tp::String(in->type->name);
|
||||
|
||||
// allocate for object file header
|
||||
ndf.setFreeAddress(ndf.getFreeAddress() + sizeof(ObjectFileHead) + tp::String::Logic::calcLength(in->type->name) + 1);
|
||||
ndf.setFreeAddress(ndf.getFreeAddress() + sizeof(ObjectFileHead) + tp::String::Logic::calcLength(in->type->name) + sizeof(tp::String::Logic::Index));
|
||||
|
||||
// calc max size needed for saving all hierarchy of types
|
||||
tp::alni file_alloc_size = objsize_file_util(in, in->type);
|
||||
|
|
@ -372,8 +372,10 @@ namespace obj {
|
|||
|
||||
ndf.setAddress(0);
|
||||
|
||||
loaded_file = (tp::int1*) malloc(ndf.getSize());
|
||||
ndf.readBytes(loaded_file, ndf.getSize());
|
||||
const auto fileSize = ndf.getSize();
|
||||
loaded_file = (tp::int1*) malloc(fileSize);
|
||||
tp::memSetVal(loaded_file, fileSize, 0);
|
||||
ndf.readBytes(loaded_file, fileSize);
|
||||
|
||||
ndf.setAddress(sizeof(ObjectsFileHeader));
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,10 @@ alni DictObject::save_size(DictObject* self) {
|
|||
|
||||
for (auto item : self->items) {
|
||||
// string length
|
||||
save_size += (item->key.size() + 1) * sizeof(*item->key.read());
|
||||
auto size = item->key.size();
|
||||
save_size += size * sizeof(*item->key.read());
|
||||
save_size += sizeof(decltype(size));
|
||||
|
||||
// object file adress
|
||||
save_size += sizeof(alni);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,8 +50,11 @@ alnf StringObject::to_float(StringObject* self) {
|
|||
}
|
||||
|
||||
static alni save_size(StringObject* self) {
|
||||
// return self->val.save_size();
|
||||
return {};
|
||||
alni save_size = 0;
|
||||
auto size = self->val.size();
|
||||
save_size += (size) * sizeof(*self->val.read());
|
||||
save_size += sizeof(decltype(size));
|
||||
return save_size;
|
||||
}
|
||||
|
||||
static void save(StringObject* self, ArchiverOut& file_self) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue