split CKContext work

This commit is contained in:
2023-09-04 22:58:53 +08:00
parent 5c1af5be24
commit ab8a9da526
16 changed files with 519 additions and 198 deletions

View File

@ -89,9 +89,9 @@ namespace LibCmo::CK2 {
for (auto& obj : m_FileObjects) {
// += 4DWORD(ObjId, ObjCid, FileIndex, NameLen)
sumHdrObjSize += 4 * CKSizeof(CKDWORD);
if (obj.Name.c_str() != nullptr) {
if (obj.Name.toCKSTRING() != nullptr) {
// += Name size
m_Ctx->GetNativeString(obj.Name.string(), name_conv);
m_Ctx->GetNativeString(obj.Name.toString(), name_conv);
sumHdrObjSize += static_cast<CKDWORD>(name_conv.size());
}
@ -176,8 +176,8 @@ namespace LibCmo::CK2 {
hdrparser->Write(&obj.ObjectCid, sizeof(CK_CLASSID));
hdrparser->Write(&obj.FileIndex, sizeof(CKDWORD));
if (obj.Name.c_str() != nullptr) {
m_Ctx->GetNativeString(obj.Name.string(), name_conv);
if (obj.Name.toCKSTRING() != nullptr) {
m_Ctx->GetNativeString(obj.Name.toString(), name_conv);
CKDWORD namelen = static_cast<CKDWORD>(name_conv.size());
hdrparser->Write(&namelen, sizeof(CKDWORD));
hdrparser->Write(name_conv.data(), namelen);