]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Tweaks involving VG_(strncpy_safely)(), mostly to shorten code sequences.
authorNicholas Nethercote <njn@valgrind.org>
Sat, 26 Mar 2005 21:34:45 +0000 (21:34 +0000)
committerNicholas Nethercote <njn@valgrind.org>
Sat, 26 Mar 2005 21:34:45 +0000 (21:34 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3450

coregrind/vg_demangle.c
coregrind/vg_mylibc.c
coregrind/vg_symtab2.c
coregrind/vg_translate.c

index d32b6deea1278c6fb3c1ba90bed2d54174bdca5c..55026fe4afca7cb95e630e1a3648bd167535d078 100644 (file)
 #include "core.h"
 #include "demangle.h"
 
-static void add_to_result ( Char* result, Char* s, Int result_size )
-{
-   VG_(strncpy)(result, s, result_size);
-   result[result_size-1] = 0;    // just in case no NUL was copied
-}
-
 void VG_(demangle) ( Char* orig, Char* result, Int result_size )
 {
    Char* demangled = NULL;
@@ -48,10 +42,10 @@ void VG_(demangle) ( Char* orig, Char* result, Int result_size )
       demangled = VG_(cplus_demangle) ( orig, DMGL_ANSI | DMGL_PARAMS );
 
    if (demangled) {
-      add_to_result(result, demangled, result_size);
+      VG_(strncpy_safely)(result, demangled, result_size);
       VG_(arena_free) (VG_AR_DEMANGLE, demangled);
    } else {
-      add_to_result(result, orig, result_size);
+      VG_(strncpy_safely)(result, orig, result_size);
    }
 
    // 13 Mar 2005: We used to check here that the demangler wasn't leaking
index bb03cce0f80ed3d649b31ea00f11d4333b33ffd7..93413ea4c8c4c980b4840eef583d9038c9372fb4 100644 (file)
@@ -864,13 +864,12 @@ void VG_(strncpy_safely) ( Char* dest, const Char* src, Int ndest )
    Int i;
    vg_assert(ndest > 0);
    i = 0;
-   dest[i] = 0;
    while (True) {
+      dest[i] = 0;
       if (src[i] == 0) return;
       if (i >= ndest-1) return;
       dest[i] = src[i];
       i++;
-      dest[i] = 0;
    }
 }
 
index e252ca311f5deebe19d6edc92ad954d53eddecaa..5a5371d389d7eab2927b84541d36f9d5e245ed1e 100644 (file)
@@ -1895,8 +1895,7 @@ Bool get_fnname ( Bool demangle, Addr a, Char* buf, Int nbuf,
    if (demangle) {
       VG_(demangle) ( si->symtab[sno].name, buf, nbuf );
    } else {
-      VG_(strncpy_safely) 
-         ( buf, si->symtab[sno].name, nbuf );
+      VG_(strncpy_safely) ( buf, si->symtab[sno].name, nbuf );
    }
 
    offset = a - si->symtab[sno].addr;
@@ -1996,8 +1995,7 @@ Bool VG_(get_filename)( Addr a, Char* filename, Int n_filename )
    search_all_loctabs ( a, &si, &locno );
    if (si == NULL) 
       return False;
-   VG_(strncpy_safely)(filename, si->loctab[locno].filename, 
-                       n_filename);
+   VG_(strncpy_safely)(filename, si->loctab[locno].filename, n_filename);
    return True;
 }
 
@@ -2026,8 +2024,7 @@ Bool VG_(get_filename_linenum)( Addr a,
    search_all_loctabs ( a, &si, &locno );
    if (si == NULL) 
       return False;
-   VG_(strncpy_safely)(filename, si->loctab[locno].filename, 
-                       n_filename);
+   VG_(strncpy_safely)(filename, si->loctab[locno].filename, n_filename);
    *lineno = si->loctab[locno].lineno;
 
    return True;
index d700173234aec3c71753a14d90a896b59f76d890..854b8f51d82cf912c33f91db5eaef8b7eb824f96 100644 (file)
@@ -380,17 +380,9 @@ Bool VG_(translate) ( ThreadId tid,
       Char name2[64] = "";
       name1[0] = name2[0] = 0;
       ok = VG_(get_fnname_w_offset)(orig_addr, name1, 64);
-      if (ok) {
-         name1[63] = 0;
-      } else {
-         VG_(strcpy)(name1, "???");
-      }
+      if (!ok) VG_(strcpy)(name1, "???");
       ok = VG_(get_fnname_w_offset)(redir, name2, 64);
-      if (ok) {
-         name2[63] = 0;
-      } else {
-         VG_(strcpy)(name2, "???");
-      }
+      if (!ok) VG_(strcpy)(name2, "???");
       VG_(message)(Vg_DebugMsg, 
                    "TRANSLATE: 0x%llx (%s) redirected to 0x%llx (%s)",
                    orig_addr, name1,