summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/StringRefMemoryObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Support/StringRefMemoryObject.cpp')
-rw-r--r--llvm/lib/Support/StringRefMemoryObject.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/llvm/lib/Support/StringRefMemoryObject.cpp b/llvm/lib/Support/StringRefMemoryObject.cpp
index 5db11e918cd..e035ed1d2ef 100644
--- a/llvm/lib/Support/StringRefMemoryObject.cpp
+++ b/llvm/lib/Support/StringRefMemoryObject.cpp
@@ -20,15 +20,10 @@ int StringRefMemoryObject::readByte(uint64_t Addr, uint8_t *Byte) const {
int StringRefMemoryObject::readBytes(uint64_t Addr,
uint64_t Size,
- uint8_t *Buf,
- uint64_t *Copied) const {
- if (Addr >= Base + getExtent() || Addr < Base)
- return -1;
+ uint8_t *Buf) const {
uint64_t Offset = Addr - Base;
- if (Size > getExtent() - Offset)
- Size = getExtent() - Offset;
+ if (Addr >= Base + getExtent() || Offset + Size > getExtent() || Addr < Base)
+ return -1;
memcpy(Buf, Bytes.data() + Offset, Size);
- if (Copied)
- *Copied = Size;
return 0;
}
OpenPOWER on IntegriCloud