Add Win32 support to llvm::llvm_execute_on_thread(). Thanks to Aaron Ballman!
[oota-llvm.git] / lib / DebugInfo / DWARFDebugLine.h
index 459bb5f723f3bd5a1a82c8d5d0b7cfd76e71469d..bc6a70b1112040af6bbe444594d3131f99cebbb6 100644 (file)
@@ -147,7 +147,8 @@ public:
       DoneParsingLineTable = -1
     };
 
-    State() : row(0) {}
+    State() : row(StartParsingLineTable) {}
+    virtual ~State();
 
     virtual void appendRowToMatrix(uint32_t offset);
     virtual void finalize(uint32_t offset) { row = DoneParsingLineTable; }
@@ -160,6 +161,7 @@ public:
 
   struct DumpingState : public State {
     DumpingState(raw_ostream &OS) : OS(OS) {}
+    virtual ~DumpingState();
     virtual void finalize(uint32_t offset);
   private:
     raw_ostream &OS;
@@ -171,15 +173,9 @@ public:
   static bool parseStatementTable(DataExtractor debug_line_data,
                                   uint32_t *offset_ptr, State &state);
 
-  /// Parse all information in the debug_line_data into an internal
-  /// representation.
-  void parse(DataExtractor debug_line_data);
-  void parseIfNeeded(DataExtractor debug_line_data) {
-    if (LineTableMap.empty())
-      parse(debug_line_data);
-  }
-  static void dump(DataExtractor debug_line_data, raw_ostream &OS);
   const LineTable *getLineTable(uint32_t offset) const;
+  const LineTable *getOrParseLineTable(DataExtractor debug_line_data,
+                                       uint32_t offset);
 
 private:
   typedef std::map<uint32_t, LineTable> LineTableMapTy;