From b3b188061ac1ad7797a00e7d99d5c6e9478051fc Mon Sep 17 00:00:00 2001 From: Vinnie Falco Date: Wed, 17 Jul 2013 13:31:01 -0700 Subject: [PATCH] Fix POSIX RandomAccessFile --- .../files/beast_RandomAccessFile.cpp | 21 +++++++++++-------- .../native/beast_posix_SharedCode.h | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/modules/beast_core/files/beast_RandomAccessFile.cpp b/modules/beast_core/files/beast_RandomAccessFile.cpp index 200b40a13f..33febec9c4 100644 --- a/modules/beast_core/files/beast_RandomAccessFile.cpp +++ b/modules/beast_core/files/beast_RandomAccessFile.cpp @@ -216,11 +216,11 @@ public: for (int i = 0; i < numRecords; ++i) { Payload p (records [i].bytes); - + p.repeatableRandomFill (records [i].bytes, records [i].bytes, records [i].index + seedValue); - + file.setPosition (records [i].offset); Result result = file.write (p.data.getData (), p.bytes); @@ -228,7 +228,7 @@ public: expect (result.wasOk (), "Should be ok"); } } - + void readRecords (RandomAccessFile& file, int numRecords, HeapBlock const & records, @@ -276,17 +276,20 @@ public: expect (result.wasOk (), "Should be ok"); - HeapBlock records (numRecords); + if (result.wasOk ()) + { + HeapBlock records (numRecords); - createRecords (records, numRecords, maxPayload, seedValue); + createRecords (records, numRecords, maxPayload, seedValue); - writeRecords (file, numRecords, records, seedValue); + writeRecords (file, numRecords, records, seedValue); - readRecords (file, numRecords, records, seedValue); + readRecords (file, numRecords, records, seedValue); - repeatableShuffle (numRecords, records, seedValue); + repeatableShuffle (numRecords, records, seedValue); - readRecords (file, numRecords, records, seedValue); + readRecords (file, numRecords, records, seedValue); + } } void runTest () diff --git a/modules/beast_core/native/beast_posix_SharedCode.h b/modules/beast_core/native/beast_posix_SharedCode.h index 880981f6c8..622d48a141 100644 --- a/modules/beast_core/native/beast_posix_SharedCode.h +++ b/modules/beast_core/native/beast_posix_SharedCode.h @@ -551,7 +551,7 @@ Result RandomAccessFile::nativeOpen (File const& path, Mode mode) } else if (mode == readWrite) { - const int f = ::open (file.getFullPathName().toUTF8(), O_RDWR + O_CREAT, 00644); + const int f = ::open (path.getFullPathName().toUTF8(), O_RDWR + O_CREAT, 00644); if (f != -1) {