diff --git a/src/compiler/dex/arena_allocator.cc b/src/compiler/dex/arena_allocator.cc
index 2db8445..7f1bfb3 100644
--- a/src/compiler/dex/arena_allocator.cc
+++ b/src/compiler/dex/arena_allocator.cc
@@ -50,6 +50,18 @@
   num_arena_blocks_++;
 }
 
+ArenaAllocator::~ArenaAllocator() {
+  // Reclaim all the arena blocks allocated so far.
+  ArenaMemBlock* head = arena_head_;
+  while (head != NULL) {
+    ArenaMemBlock* p = head;
+    head = head->next;
+    free(p);
+  }
+  arena_head_ = current_arena_ = NULL;
+  num_arena_blocks_ = 0;
+}
+
 // Return an arena with no storage for use as a sentinal.
 ArenaAllocator::ArenaMemBlock* ArenaAllocator::EmptyArena() {
   ArenaMemBlock* res = static_cast<ArenaMemBlock*>(malloc(sizeof(ArenaMemBlock)));
@@ -91,19 +103,6 @@
   return ptr;
 }
 
-// Reclaim all the arena blocks allocated so far.
-void ArenaAllocator::ArenaReset() {
-  ArenaMemBlock* head = arena_head_;
-  while (head != NULL) {
-    ArenaMemBlock* p = head;
-    head = head->next;
-    free(p);
-  }
-  // We must always have an arena.  Create a zero-length one.
-  arena_head_ = current_arena_ = EmptyArena();
-  num_arena_blocks_ = 1;
-}
-
 // Dump memory usage stats.
 void ArenaAllocator::DumpMemStats(std::ostream& os) const {
   size_t total = 0;
diff --git a/src/compiler/dex/arena_allocator.h b/src/compiler/dex/arena_allocator.h
index 53d1a1b..26294b6 100644
--- a/src/compiler/dex/arena_allocator.h
+++ b/src/compiler/dex/arena_allocator.h
@@ -47,8 +47,8 @@
     };
 
   ArenaAllocator(size_t default_size = ARENA_DEFAULT_BLOCK_SIZE);
+  ~ArenaAllocator();
   void* NewMem(size_t size, bool zero, ArenaAllocKind kind);
-  void ArenaReset();
   size_t BytesAllocated() {
     return malloc_bytes_;
   }
diff --git a/src/compiler/dex/dataflow_iterator.h b/src/compiler/dex/dataflow_iterator.h
index 7d32dfc..a4b38bd 100644
--- a/src/compiler/dex/dataflow_iterator.h
+++ b/src/compiler/dex/dataflow_iterator.h
@@ -66,7 +66,10 @@
             is_iterative_(is_iterative),
             start_idx_(start_idx),
             end_idx_(end_idx),
-            reverse_(reverse) {}
+            reverse_(reverse),
+            block_id_list_(NULL),
+            idx_(0),
+            changed_(false) {}
 
       virtual BasicBlock* NextBody(bool had_change);
 
diff --git a/src/compiler/dex/frontend.cc b/src/compiler/dex/frontend.cc
index 6f4ee6c..b212e5b 100644
--- a/src/compiler/dex/frontend.cc
+++ b/src/compiler/dex/frontend.cc
@@ -249,8 +249,6 @@
     }
   }
 
-  cu->arena.ArenaReset();
-
   return result;
 }
 
