[llvm-commits] CVS: llvm/lib/Bytecode/Reader/Reader.cpp ReaderInternals.h

Chris Lattner lattner at cs.uiuc.edu
Thu May 22 13:27:01 PDT 2003


Changes in directory llvm/lib/Bytecode/Reader:

Reader.cpp updated: 1.55 -> 1.56
ReaderInternals.h updated: 1.36 -> 1.37

---
Log message:

Do not assert fail or crash when a bytecode parse fails!


---
Diffs of the changes:

Index: llvm/lib/Bytecode/Reader/Reader.cpp
diff -u llvm/lib/Bytecode/Reader/Reader.cpp:1.55 llvm/lib/Bytecode/Reader/Reader.cpp:1.56
--- llvm/lib/Bytecode/Reader/Reader.cpp:1.55	Thu May 22 13:08:30 2003
+++ llvm/lib/Bytecode/Reader/Reader.cpp	Thu May 22 13:26:48 2003
@@ -642,6 +642,7 @@
 
   TheModule = new Module(ModuleID);
   if (ParseModule(Buf, EndBuf)) {
+    freeState();       // Must destroy handles before deleting module!
     delete TheModule;
     TheModule = 0;
   }


Index: llvm/lib/Bytecode/Reader/ReaderInternals.h
diff -u llvm/lib/Bytecode/Reader/ReaderInternals.h:1.36 llvm/lib/Bytecode/Reader/ReaderInternals.h:1.37
--- llvm/lib/Bytecode/Reader/ReaderInternals.h:1.36	Thu May 22 13:08:30 2003
+++ llvm/lib/Bytecode/Reader/ReaderInternals.h	Thu May 22 13:26:48 2003
@@ -45,6 +45,9 @@
     FirstDerivedTyID = Type::FirstDerivedTyID;
   }
   ~BytecodeParser() {
+    freeState();
+  }
+  void freeState() {
     freeTable(Values);
     freeTable(LateResolveValues);
     freeTable(ModuleValues);





More information about the llvm-commits mailing list