LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
StringRefMemoryObject.cpp
Go to the documentation of this file.
1 //===- lib/Support/StringRefMemoryObject.cpp --------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
11 
12 using namespace llvm;
13 
14 int StringRefMemoryObject::readByte(uint64_t Addr, uint8_t *Byte) const {
15  if (Addr >= Base + getExtent() || Addr < Base)
16  return -1;
17  *Byte = Bytes[Addr - Base];
18  return 0;
19 }
20 
22  uint64_t Size,
23  uint8_t *Buf) const {
24  uint64_t Offset = Addr - Base;
25  if (Addr >= Base + getExtent() || Offset + Size > getExtent() || Addr < Base)
26  return -1;
27  memcpy(Buf, Bytes.data() + Offset, Size);
28  return 0;
29 }
int readByte(uint64_t Addr, uint8_t *Byte) const LLVM_OVERRIDE
const char * data() const
Definition: StringRef.h:107
int readBytes(uint64_t Addr, uint64_t Size, uint8_t *Buf) const LLVM_OVERRIDE
uint64_t getExtent() const LLVM_OVERRIDE