Fix iteration in RemoveNativeDebugInfoForJit

Get the next pointer before deletion clears it.

Change-Id: Ic471d88a9a79e6b1b84e063f61c78bd2870eb76c
diff --git a/runtime/jit/debugger_interface.cc b/runtime/jit/debugger_interface.cc
index cdd7775..1ca4165 100644
--- a/runtime/jit/debugger_interface.cc
+++ b/runtime/jit/debugger_interface.cc
@@ -576,10 +576,12 @@
   RepackEntries(/*compress_entries=*/ true, removed);
 
   // Remove entries which are not allowed to be packed (containing single method each).
-  for (const JITCodeEntry* it = __jit_debug_descriptor.head_; it != nullptr; it = it->next_) {
+  for (const JITCodeEntry* it = __jit_debug_descriptor.head_; it != nullptr;) {
+    const JITCodeEntry* next = it->next_;
     if (!it->allow_packing_ && std::binary_search(removed.begin(), removed.end(), it->addr_)) {
       DeleteJITCodeEntryInternal<JitNativeInfo>(/*entry=*/ it);
     }
+    it = next;
   }
 }