* Eliminate BytecodeBufferReader::Length member variable
authorMisha Brukman <brukman+llvm@gmail.com>
Wed, 24 Sep 2003 22:04:02 +0000 (22:04 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Wed, 24 Sep 2003 22:04:02 +0000 (22:04 +0000)
* Kill unused ALIN_PTRS #define
* Set the error string if user passed it in to be compatible with former API

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8701 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Bytecode/Reader/ReaderWrappers.cpp

index ecdb16d363fe9fee5bc3d8f269dd6562731ee49c..a5cc1c9a6b9c027a02ced556a41a40a3246d6e7b 100644 (file)
@@ -76,7 +76,6 @@ namespace {
   class BytecodeBufferReader : public BytecodeParser {
   private:
     const unsigned char *Buffer;
-    int Length;
     bool MustDelete;
 
     BytecodeBufferReader(const BytecodeBufferReader&); // Do not implement
@@ -91,26 +90,23 @@ namespace {
 }
 
 BytecodeBufferReader::BytecodeBufferReader(const unsigned char *Buf,
-                                           unsigned Len,
+                                           unsigned Length,
                                            const std::string &ModuleID)
 {
   // If not aligned, allocate a new buffer to hold the bytecode...
   const unsigned char *ParseBegin = 0;
-  unsigned Offset = 0;
   if ((intptr_t)Buf & 3) {
-    Length = Len+4;
-    Buffer = new unsigned char[Length];
-    Offset = 4 - ((intptr_t)Buf & 3);   // Make sure it's aligned
+    Buffer = new unsigned char[Length+4];
+    unsigned Offset = 4 - ((intptr_t)Buf & 3);   // Make sure it's aligned
     ParseBegin = Buffer + Offset;
-    memcpy((unsigned char*)ParseBegin, Buf, Len);    // Copy it over
+    memcpy((unsigned char*)ParseBegin, Buf, Length);    // Copy it over
     MustDelete = true;
   } else {
     // If we don't need to copy it over, just use the caller's copy
     ParseBegin = Buffer = Buf;
-    Length = Len;
     MustDelete = false;
   }
-  ParseBytecode(ParseBegin, Len, ModuleID);
+  ParseBytecode(ParseBegin, Length, ModuleID);
 }
 
 BytecodeBufferReader::~BytecodeBufferReader() {
@@ -131,12 +127,9 @@ namespace {
 
   public:
     BytecodeStdinReader();
-    ~BytecodeStdinReader();
   };
 }
 
-#define ALIGN_PTRS 0
-
 BytecodeStdinReader::BytecodeStdinReader() {
   int BlockSize;
   unsigned char Buffer[4096*4];
@@ -152,24 +145,10 @@ BytecodeStdinReader::BytecodeStdinReader() {
   if (FileData.empty())
     throw std::string("Standard Input empty!");
 
-#if ALIGN_PTRS
-  FileBuf = (unsigned char*)mmap(0, FileData.size(), PROT_READ|PROT_WRITE, 
-                                 MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
-  assert((Buf != (unsigned char*)-1) && "mmap returned error!");
-  memcpy(Buf, &FileData[0], FileData.size());
-#else
   FileBuf = &FileData[0];
-#endif
-
   ParseBytecode(FileBuf, FileData.size(), "<stdin>");
 }
 
-BytecodeStdinReader::~BytecodeStdinReader() {
-#if ALIGN_PTRS
-  munmap((char*)FileBuf, FileData.size());   // Free mmap'd data area
-#endif
-}
-
 /////////////////////////////////////////////////////////////////////////////
 //
 // Wrapper functions
@@ -195,6 +174,7 @@ Module *ParseBytecodeBuffer(const unsigned char *Buffer, unsigned Length,
     M = AMP->releaseModule();
     delete AMP;
   } catch (std::string &err) {
+    if (ErrorStr) ErrorStr = err;
     return 0;
   }
   return M;
@@ -219,6 +199,7 @@ Module *ParseBytecodeFile(const std::string &Filename, std::string *ErrorStr) {
     M = AMP->releaseModule();
     delete AMP;
   } catch (std::string &err) {
+    if (ErrorStr) ErrorStr = err;
     return 0;
   }
   return M;