ChangeLog | 7 +++++++
src/vm/nolimips_system_library.cc | 3 +++
2 files changed, 10 insertions(+)
Index: trunk/ChangeLog
from Benot Perrot <benoit(a)nostromo.lrde.epita.fr>
Fix nolimips' system library's read implementation.
* src/vm/nolimips_system_library.cc:
(NolimipsSystemLibrary::read): Effectively return -1 on EOF.
Index: trunk/src/vm/nolimips_system_library.cc
--- src/vm/nolimips_system_library.cc (revision 201)
+++ src/vm/nolimips_system_library.cc (working copy)
@@ -39,14 +39,17 @@
int i = -1;
if (istr)
{
- for (i = 0; i < count; ++i, ++offset)
- {
- int c = istr->get();
- if (istr->eof())
- break;
+ istr->peek();
- mmu.data_store_byte(offset, c);
- }
+ if (!istr->eof())
+ for (i = 0; i < count; ++i, ++offset)
+ {
+ int c = istr->get();
+ if (istr->eof())
+ break;
+
+ mmu.data_store_byte(offset, c);
+ }
}
return i;