Merge changes I7b4e1ed1,I8a91c3f7,If78d20a5,I55431ac7

* changes:
  init: Add support for assigning system properties to system properties in init.rc
  init: Fix the init.rc import command
  init: Allow wildcards in property triggers by using * for property value
  init: Add support for writing system property value to a file in init.rc
diff --git a/adb/sockets.c b/adb/sockets.c
index 45d935c..3d62f1e 100644
--- a/adb/sockets.c
+++ b/adb/sockets.c
@@ -225,10 +225,12 @@
           s->id, s->peer->id, s->peer->fd);
         s->peer->peer = 0;
         // tweak to avoid deadlock
-        if (s->peer->close == local_socket_close)
+        if (s->peer->close == local_socket_close) {
             local_socket_close_locked(s->peer);
-        else
+        } else {
             s->peer->close(s->peer);
+        }
+        s->peer = 0;
     }
 
         /* If we are already closing, or if there are no
@@ -799,6 +801,7 @@
     if(s->peer) {
         s->peer->peer = 0;
         s->peer->close(s->peer);
+        s->peer = 0;
     }
     free(s);
 }
diff --git a/debuggerd/x86/unwind.c b/debuggerd/x86/unwind.c
index 8f84e01..0a7f04c 100644
--- a/debuggerd/x86/unwind.c
+++ b/debuggerd/x86/unwind.c
@@ -24,7 +24,6 @@
 
 //ebp==0, it indicates that the stack is poped to the bottom or there is no stack at all.
     while (ebp) {
-        _LOG(tfd, !at_fault, "#0%d ",stack_level);
         mi = pc_to_mapinfo(map, eip, &rel_pc);
 
         /* See if we can determine what symbol this stack frame resides in */
@@ -32,9 +31,11 @@
             sym = symbol_table_lookup(mi->symbols, rel_pc);
         }
         if (sym) {
-            _LOG(tfd, !at_fault, "    eip: %08x  %s (%s)\n", eip, mi ? mi->name : "", sym->name);
+            _LOG(tfd, !at_fault, "    #%02d  eip: %08x  %s (%s)\n",
+                 stack_level, eip, mi ? mi->name : "", sym->name);
         } else {
-            _LOG(tfd, !at_fault, "    eip: %08x  %s\n", eip, mi ? mi->name : "");
+            _LOG(tfd, !at_fault, "    #%02d  eip: %08x  %s\n",
+                 stack_level, eip, mi ? mi->name : "");
         }
 
         stack_level++;
@@ -49,7 +50,6 @@
     if (ebp)
         _LOG(tfd, !at_fault, "stack: \n");
     while (ebp) {
-        _LOG(tfd, !at_fault, "#0%d \n",stack_level);
         stack_ptr = cur_sp;
         while((int)(ebp - stack_ptr) >= 0) {
             stack_content = ptrace(PTRACE_PEEKTEXT, pid, (void*)stack_ptr, NULL);
@@ -60,10 +60,11 @@
                 sym = symbol_table_lookup(mi->symbols, rel_pc);
             }
             if (sym) {
-                _LOG(tfd, !at_fault, "    %08x  %08x  %s (%s)\n",
-                    stack_ptr, stack_content, mi ? mi->name : "", sym->name);
+                _LOG(tfd, !at_fault, "    #%02d  %08x  %08x  %s (%s)\n",
+                     stack_level, stack_ptr, stack_content, mi ? mi->name : "", sym->name);
             } else {
-                _LOG(tfd, !at_fault, "    %08x  %08x  %s\n", stack_ptr, stack_content, mi ? mi->name : "");
+                _LOG(tfd, !at_fault, "    #%02d  %08x  %08x  %s\n",
+                     stack_level, stack_ptr, stack_content, mi ? mi->name : "");
             }
 
             stack_ptr = stack_ptr + 4;