X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FSupport%2FStreamingMemoryObject.h;h=fb63da7dbccb8051394acc427cf2bed3d33b9159;hb=5d6f997e0a4ed5baf58f600b5230dec9bdac736a;hp=da1b88738d0924757335c957beafb2bd14b3b157;hpb=d0518569ecfe74ad7d90b26cee2d8ebebc1bdb93;p=oota-llvm.git diff --git a/include/llvm/Support/StreamingMemoryObject.h b/include/llvm/Support/StreamingMemoryObject.h index da1b88738d0..fb63da7dbcc 100644 --- a/include/llvm/Support/StreamingMemoryObject.h +++ b/include/llvm/Support/StreamingMemoryObject.h @@ -14,7 +14,6 @@ #include "llvm/Support/DataStream.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/MemoryObject.h" -#include #include #include @@ -27,8 +26,8 @@ class StreamingMemoryObject : public MemoryObject { public: StreamingMemoryObject(DataStreamer *streamer); uint64_t getExtent() const override; - int readBytes(uint64_t address, uint64_t size, - uint8_t *buf) const override; + uint64_t readBytes(uint8_t *Buf, uint64_t Size, + uint64_t Address) const override; const uint8_t *getPointer(uint64_t address, uint64_t size) const override { // This could be fixed by ensuring the bytes are fetched and making a copy, // requiring that the bitcode size be known, or otherwise ensuring that @@ -38,7 +37,6 @@ public: return nullptr; } bool isValidAddress(uint64_t address) const override; - bool isObjectEnd(uint64_t address) const override; /// Drop s bytes from the front of the stream, pushing the positions of the /// remaining bytes down by s. This is used to skip past the bitcode header, @@ -66,27 +64,24 @@ private: // Most of the requests will be small, but we fetch at kChunkSize bytes // at a time to avoid making too many potentially expensive GetBytes calls bool fetchToPos(size_t Pos) const { - if (EOFReached) return Pos < ObjectSize; + if (EOFReached) + return Pos < ObjectSize; while (Pos >= BytesRead) { Bytes.resize(BytesRead + BytesSkipped + kChunkSize); size_t bytes = Streamer->GetBytes(&Bytes[BytesRead + BytesSkipped], kChunkSize); BytesRead += bytes; - if (bytes < kChunkSize) { - assert((!ObjectSize || BytesRead >= Pos) && - "Unexpected short read fetching bitcode"); - if (BytesRead <= Pos) { // reached EOF/ran out of bytes - ObjectSize = BytesRead; - EOFReached = true; - return false; - } + if (bytes != kChunkSize) { // reached EOF/ran out of bytes + ObjectSize = BytesRead; + EOFReached = true; + break; } } - return true; + return Pos < BytesRead; } - StreamingMemoryObject(const StreamingMemoryObject&) LLVM_DELETED_FUNCTION; - void operator=(const StreamingMemoryObject&) LLVM_DELETED_FUNCTION; + StreamingMemoryObject(const StreamingMemoryObject&) = delete; + void operator=(const StreamingMemoryObject&) = delete; }; MemoryObject *getNonStreamedMemoryObject(