aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/resource.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2009-11-25 20:43:49 +0000
committerEugene Sandulenko2009-11-25 20:43:49 +0000
commit12828d3aafb5c235b47644e1bed4063651dc114b (patch)
treeb3c1ef5e31a4e6fc70ddfc05e6afb5a93053fec1 /engines/saga/resource.cpp
parent413a048a0605a4d43b33dddd0883face5e2c257c (diff)
downloadscummvm-rg350-12828d3aafb5c235b47644e1bed4063651dc114b.tar.gz
scummvm-rg350-12828d3aafb5c235b47644e1bed4063651dc114b.tar.bz2
scummvm-rg350-12828d3aafb5c235b47644e1bed4063651dc114b.zip
Cache resource file size to avoid excess file->size() calls.
svn-id: r46138
Diffstat (limited to 'engines/saga/resource.cpp')
-rw-r--r--engines/saga/resource.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/engines/saga/resource.cpp b/engines/saga/resource.cpp
index 9590a99272..3bdd8e00db 100644
--- a/engines/saga/resource.cpp
+++ b/engines/saga/resource.cpp
@@ -95,7 +95,7 @@ bool Resource::loadResContext_v1(ResourceContext *context, uint32 contextOffset,
resourceData->offset = contextOffset + readS1.readUint32();
resourceData->size = readS1.readUint32();
//sanity check
- if ((resourceData->offset > (uint)context->file->size()) || (resourceData->size > contextSize)) {
+ if ((resourceData->offset > (uint)context->fileSize) || (resourceData->size > contextSize)) {
result = false;
break;
}
@@ -123,6 +123,7 @@ bool Resource::loadContext(ResourceContext *context) {
return false;
}
+ context->fileSize = context->file->size();
context->isBigEndian = _vm->isBigEndian();
if (context->fileType & GAME_SWAPENDIAN)
@@ -132,7 +133,7 @@ bool Resource::loadContext(ResourceContext *context) {
context->fileType &= ~GAME_MACBINARY;
if (!isMacBinary) {
- if (!loadResContext(context, 0, context->file->size())) {
+ if (!loadResContext(context, 0, context->fileSize)) {
return false;
}
} else {