mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-02 06:27:42 +00:00
chore: temporarly adjust pointer insertion
This commit is contained in:
parent
6aa548d226
commit
995e5fbdf6
@ -532,6 +532,13 @@ namespace
|
|||||||
LINEF("fillAccessor.FillPtr({0}, {1});",
|
LINEF("fillAccessor.FillPtr({0}, {1});",
|
||||||
MakeMemberAccess(&structInfo, &memberInfo, modifier),
|
MakeMemberAccess(&structInfo, &memberInfo, modifier),
|
||||||
OffsetForMemberModifier(memberInfo, modifier, nestedBaseOffset))
|
OffsetForMemberModifier(memberInfo, modifier, nestedBaseOffset))
|
||||||
|
|
||||||
|
if (memberInfo.m_is_reusable)
|
||||||
|
{
|
||||||
|
LINEF("fillAccessor.InsertPointerRedirect(m_stream.AllocRedirectEntry({0}), {1});",
|
||||||
|
MakeMemberAccess(&structInfo, &memberInfo, modifier),
|
||||||
|
OffsetForMemberModifier(memberInfo, modifier, nestedBaseOffset))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (modifier.IsPointerArray())
|
else if (modifier.IsPointerArray())
|
||||||
{
|
{
|
||||||
@ -1492,7 +1499,7 @@ namespace
|
|||||||
}
|
}
|
||||||
m_intendation--;
|
m_intendation--;
|
||||||
}
|
}
|
||||||
else
|
else if (!m_env.m_architecture_mismatch)
|
||||||
{
|
{
|
||||||
LINE("assert(atStreamStart);")
|
LINE("assert(atStreamStart);")
|
||||||
}
|
}
|
||||||
|
@ -403,10 +403,10 @@ namespace
|
|||||||
|
|
||||||
if (lookupEntry == 0)
|
if (lookupEntry == 0)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
if (lookupEntry > m_alias_lookup.size())
|
if (lookupEntry > m_pointer_redirect_lookup.size())
|
||||||
throw InvalidAliasLookupException(lookupEntry - 1, m_alias_lookup.size());
|
throw InvalidAliasLookupException(lookupEntry - 1, m_pointer_redirect_lookup.size());
|
||||||
|
|
||||||
return m_alias_lookup[lookupEntry - 1];
|
return *m_pointer_redirect_lookup[lookupEntry - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <type_traits>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
class ZoneStreamFillReadAccessor
|
class ZoneStreamFillReadAccessor
|
||||||
@ -148,7 +149,7 @@ public:
|
|||||||
|
|
||||||
template<typename T> uintptr_t AllocRedirectEntry(T*& offset)
|
template<typename T> uintptr_t AllocRedirectEntry(T*& offset)
|
||||||
{
|
{
|
||||||
return AllocRedirectEntry(reinterpret_cast<void**>(&offset));
|
return AllocRedirectEntry(reinterpret_cast<void**>(const_cast<std::remove_const_t<T>**>(&offset)));
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void* ConvertOffsetToPointerRedirect(const void* offset) = 0;
|
virtual void* ConvertOffsetToPointerRedirect(const void* offset) = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user