if(archive[0] == ':')
{
char moduleName[MAX_LOCATION];
- if(LocateModule(archive + 1, moduleName))
+ char * name = archive + 1;
+#if defined(__ANDROID__)
+ if(!name[0])
+ name = ((SubModule)__thisModule.application.modules.first).next.module.name;
+#endif
+
+ if(LocateModule(name, moduleName))
f = FileOpen(moduleName, read);
}
else
if(compressed)
{
if(f.Read(compressed, 1, entry.cSize) == entry.cSize)
- uncompress(uncompressed, (uint *)&entry.size, compressed, entry.cSize);
+ {
+ unsigned long destLen = entry.size;
+ uncompress(uncompressed, &destLen, compressed, entry.cSize);
+ entry.size = (FileSize)destLen; // TODO: Support 64 bit file sizes
+ }
delete compressed;
}
if(compressed)
{
if(f.Read(compressed, 1, entry.cSize) == entry.cSize)
- uncompress(uncompressed, (uint *)&entry.size, compressed, entry.cSize);
+ {
+ unsigned long destLen = entry.size;
+ uncompress(uncompressed, &destLen, compressed, entry.cSize);
+ entry.size = (FileSize)destLen;
+ }
delete compressed;
}
if(compressed)
{
if(archive.f.Read(compressed, 1, entry.cSize) == entry.cSize)
- uncompress(uncompressed, (uint *)&entry.size, compressed, entry.cSize);
+ {
+ unsigned long destLen = entry.size;
+ uncompress(uncompressed, &destLen, compressed, entry.cSize);
+ entry.size = (FileSize)destLen;
+ }
delete compressed;
}
{
if(input.Read(uncompressed, 1, entry.size) == entry.size)
{
- entry.cSize = entry.size + entry.size / 1000 + 12;
+ unsigned long destLen = entry.size + entry.size / 1000 + 12;
- compressed = new byte[entry.cSize];
+ compressed = new byte[destLen];
if(compressed)
- compress2(compressed, (uint *)&entry.cSize, uncompressed, entry.size, compression);
+ {
+ compress2(compressed, &destLen, uncompressed, entry.size, compression);
+ entry.cSize = (FileSize)destLen;
+ }
}
delete uncompressed;
}
last = position;
if(!first) first = position;
- if(newPosition) *newPosition = (bool)position;
+ if(newPosition) *newPosition = position;
}
else
{
if(compressed)
{
if(f.Read(compressed, 1, entry.cSize) == entry.cSize)
- uncompress(uncompressed, (uint *)&entry.size, compressed, entry.cSize);
+ {
+ unsigned long destLen = entry.size;
+ uncompress(uncompressed, &destLen, compressed, entry.cSize);
+ entry.size = (FileSize)destLen;
+ }
delete compressed;
}