diff options
author | Max Horn | 2010-10-18 18:56:40 +0000 |
---|---|---|
committer | Max Horn | 2010-10-18 18:56:40 +0000 |
commit | cda2c950d64c660a30d0e9d8ec9b5923a26545d3 (patch) | |
tree | e87f759a38de563475bbd86d63719755ea00c98f /engines/scumm | |
parent | 32f1a9ad8bd31ebdd786c78c0234bf6a4e46d138 (diff) | |
download | scummvm-rg350-cda2c950d64c660a30d0e9d8ec9b5923a26545d3.tar.gz scummvm-rg350-cda2c950d64c660a30d0e9d8ec9b5923a26545d3.tar.bz2 scummvm-rg350-cda2c950d64c660a30d0e9d8ec9b5923a26545d3.zip |
SCUMM: Simplify SO_LOAD_STRING code
svn-id: r53574
Diffstat (limited to 'engines/scumm')
-rw-r--r-- | engines/scumm/script_v5.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp index 6d4072706c..d3e1ba43ef 100644 --- a/engines/scumm/script_v5.cpp +++ b/engines/scumm/script_v5.cpp @@ -1840,18 +1840,12 @@ void ScummEngine_v5::o5_roomOps() { Common::InSaveFile *file = _saveFileMan->openForLoading(filename); if (file != NULL) { byte *ptr; - int len = 256, cnt = 0; - ptr = (byte *)malloc(len); - while (ptr) { - int r = file->read(ptr + cnt, len - cnt); - cnt += r; - if (cnt < len) - break; - len *= 2; - ptr = (byte *)realloc(ptr, len); - assert(ptr); - } - ptr[cnt] = '\0'; + const int len = file->size(); + ptr = (byte *)malloc(len + 1); + assert(ptr); + int r = file->read(ptr, len); + assert(r == len); + ptr[len] = '\0'; loadPtrToResource(rtString, a, ptr); free(ptr); delete file; |