]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/stackwalk.cpp
another GradientFillLinear fix
[wxWidgets.git] / src / unix / stackwalk.cpp
index 2e6a5ccda44596af6d83e5c444e28ef0eedc56a9..6b8b6051c197c958fe284e243816b87425d8b08a 100644 (file)
@@ -222,7 +222,7 @@ int wxStackWalker::InitFrames(wxStackFrame *arr, size_t n, void **addresses, cha
 
     // build the (long) command line for executing addr2line in an optimized way
     // (e.g. use always chars, even in Unicode build: popen() always takes chars)
-    int len = snprintf(g_buf, BUFSIZE, "addr2line -C -f -e \"%s\"", exepath.mb_str());
+    int len = snprintf(g_buf, BUFSIZE, "addr2line -C -f -e \"%s\"", (const char*) exepath.mb_str());
     len = (len <= 0) ? strlen(g_buf) : len;     // in case snprintf() is broken
     for (size_t i=0; i<n; i++)
     {
@@ -284,11 +284,10 @@ int wxStackWalker::InitFrames(wxStackFrame *arr, size_t n, void **addresses, cha
             }
         }
 
-        if (!name.empty() || !filename.empty())
-        {
-            // now we've got enough info to initialize curr-th stack frame:
-            arr[curr++].Set(name, filename, syminfo[i], i, line, addresses[i]);
-        }
+        // now we've got enough info to initialize curr-th stack frame
+        // (at worst, only addresses[i] and syminfo[i] have been initialized,
+        //  but wxStackFrame::OnGetName may still be able to get function name):
+        arr[curr++].Set(name, filename, syminfo[i], i, line, addresses[i]);
     }
 
     return curr;