From: Nicholas Nethercote Date: Sat, 26 Mar 2005 21:34:45 +0000 (+0000) Subject: Tweaks involving VG_(strncpy_safely)(), mostly to shorten code sequences. X-Git-Tag: svn/VALGRIND_3_0_0~868 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=855c76345cbe19cfb9447acc83a89b22f569403b;p=thirdparty%2Fvalgrind.git Tweaks involving VG_(strncpy_safely)(), mostly to shorten code sequences. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3450 --- diff --git a/coregrind/vg_demangle.c b/coregrind/vg_demangle.c index d32b6deea1..55026fe4af 100644 --- a/coregrind/vg_demangle.c +++ b/coregrind/vg_demangle.c @@ -32,12 +32,6 @@ #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 diff --git a/coregrind/vg_mylibc.c b/coregrind/vg_mylibc.c index bb03cce0f8..93413ea4c8 100644 --- a/coregrind/vg_mylibc.c +++ b/coregrind/vg_mylibc.c @@ -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; } } diff --git a/coregrind/vg_symtab2.c b/coregrind/vg_symtab2.c index e252ca311f..5a5371d389 100644 --- a/coregrind/vg_symtab2.c +++ b/coregrind/vg_symtab2.c @@ -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; diff --git a/coregrind/vg_translate.c b/coregrind/vg_translate.c index d700173234..854b8f51d8 100644 --- a/coregrind/vg_translate.c +++ b/coregrind/vg_translate.c @@ -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,