[compiler-rt] r192441 - [Sanitizer] StackTrace: kill CopyTo and reimplement CopyFrom

Alexey Samsonov samsonov at google.com
Fri Oct 11 04:14:20 PDT 2013


Author: samsonov
Date: Fri Oct 11 06:14:20 2013
New Revision: 192441

URL: http://llvm.org/viewvc/llvm-project?rev=192441&view=rev
Log:
[Sanitizer] StackTrace: kill CopyTo and reimplement CopyFrom

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc?rev=192441&r1=192440&r2=192441&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc Fri Oct 11 06:14:20 2013
@@ -13,6 +13,7 @@
 
 #include "sanitizer_common.h"
 #include "sanitizer_flags.h"
+#include "sanitizer_libc.h"
 #include "sanitizer_procmaps.h"
 #include "sanitizer_stacktrace.h"
 #include "sanitizer_symbolizer.h"
@@ -34,6 +35,11 @@ uptr StackTrace::GetPreviousInstructionP
 #endif
 }
 
+void StackTrace::CopyFrom(const uptr *src, uptr src_size) {
+  size = Min(src_size, kStackTraceMax);
+  internal_memcpy(trace, src, sizeof(trace[0]) * size);
+}
+
 static void PrintStackFramePrefix(uptr frame_num, uptr pc) {
   Printf("    #%zu 0x%zx", frame_num, pc);
 }

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h?rev=192441&r1=192440&r2=192441&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h Fri Oct 11 06:14:20 2013
@@ -36,20 +36,8 @@ struct StackTrace {
   uptr trace[kStackTraceMax];
   static void PrintStack(const uptr *addr, uptr size, bool symbolize,
                          SymbolizeCallback symbolize_callback);
-  void CopyTo(uptr *dst, uptr dst_size) {
-    for (uptr i = 0; i < size && i < dst_size; i++)
-      dst[i] = trace[i];
-    for (uptr i = size; i < dst_size; i++)
-      dst[i] = 0;
-  }
 
-  void CopyFrom(uptr *src, uptr src_size) {
-    size = src_size;
-    if (size > kStackTraceMax) size = kStackTraceMax;
-    for (uptr i = 0; i < size; i++) {
-      trace[i] = src[i];
-    }
-  }
+  void CopyFrom(const uptr *src, uptr src_size);
 
   void FastUnwindStack(uptr pc, uptr bp, uptr stack_top, uptr stack_bottom,
                        uptr max_depth);





More information about the llvm-commits mailing list