mirror of
https://github.com/elasota/Aerofoil.git
synced 2025-09-23 14:53:52 +00:00
Fix MiniRez crash on empty res files
This commit is contained in:
@@ -416,6 +416,8 @@ int main(int argc, const char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("Re-emit OK\n");
|
||||||
|
|
||||||
const size_t resDataSize = resourceForkData.size() - resForkDataStart;
|
const size_t resDataSize = resourceForkData.size() - resForkDataStart;
|
||||||
const size_t resMapPos = resourceForkData.size();
|
const size_t resMapPos = resourceForkData.size();
|
||||||
|
|
||||||
@@ -441,16 +443,22 @@ int main(int argc, const char **argv)
|
|||||||
std::vector<size_t> refListStartForType;
|
std::vector<size_t> refListStartForType;
|
||||||
refListStartForType.resize(resTypeCounts.size());
|
refListStartForType.resize(resTypeCounts.size());
|
||||||
|
|
||||||
|
if (resTypeCounts.size() > 0)
|
||||||
|
{
|
||||||
refListStartForType[0] = 0;
|
refListStartForType[0] = 0;
|
||||||
for (size_t i = 1; i < refListStartForType.size(); i++)
|
for (size_t i = 1; i < refListStartForType.size(); i++)
|
||||||
refListStartForType[i] = refListStartForType[i - 1] + resTypeCounts[i - 1];
|
refListStartForType[i] = refListStartForType[i - 1] + resTypeCounts[i - 1];
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<size_t> nameListStarts;
|
std::vector<size_t> nameListStarts;
|
||||||
nameListStarts.resize(uniqueResNames.size());
|
nameListStarts.resize(uniqueResNames.size());
|
||||||
|
|
||||||
|
if (nameListStarts.size() > 0)
|
||||||
|
{
|
||||||
nameListStarts[0] = 0;
|
nameListStarts[0] = 0;
|
||||||
for (size_t i = 1; i < nameListStarts.size(); i++)
|
for (size_t i = 1; i < nameListStarts.size(); i++)
|
||||||
nameListStarts[i] = nameListStarts[i - 1] + uniqueResNames[i - 1].size() + 1;
|
nameListStarts[i] = nameListStarts[i - 1] + uniqueResNames[i - 1].size() + 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Write resource type list
|
// Write resource type list
|
||||||
for (size_t i = 0; i < uniqueResTypes.size(); i++)
|
for (size_t i = 0; i < uniqueResTypes.size(); i++)
|
||||||
@@ -514,6 +522,8 @@ int main(int argc, const char **argv)
|
|||||||
BytePack::BigUInt32(&resourceForkData[8], static_cast<uint32_t>(resDataSize));
|
BytePack::BigUInt32(&resourceForkData[8], static_cast<uint32_t>(resDataSize));
|
||||||
BytePack::BigUInt32(&resourceForkData[12], static_cast<uint32_t>(resMapSize));
|
BytePack::BigUInt32(&resourceForkData[12], static_cast<uint32_t>(resMapSize));
|
||||||
|
|
||||||
|
printf("Writing to %s...", argv[2]);
|
||||||
|
|
||||||
FILE *outF = nullptr;
|
FILE *outF = nullptr;
|
||||||
if (fopen_s(&outF, argv[2], "wb"))
|
if (fopen_s(&outF, argv[2], "wb"))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user