From 66cea4322f914b25ae48d04c00a167a4bc74cc47 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Sat, 5 May 2012 13:36:47 +0000 Subject: Fix STR #2836: copy_label() with old label() value failed. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9443 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Widget.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/Fl_Widget.cxx') diff --git a/src/Fl_Widget.cxx b/src/Fl_Widget.cxx index 79cafa2c4..50139cb22 100644 --- a/src/Fl_Widget.cxx +++ b/src/Fl_Widget.cxx @@ -303,13 +303,14 @@ Fl_Widget::label(const char *a) { void Fl_Widget::copy_label(const char *a) { - if (flags() & COPIED_LABEL) free((void *)(label_.value)); + // reassigning a copied label remains the same copied label + if ((flags() & COPIED_LABEL) && (label_.value == a)) + return; if (a) { + label(strdup(a)); set_flag(COPIED_LABEL); - label_.value=strdup(a); } else { - clear_flag(COPIED_LABEL); - label_.value=(char *)0; + label(0); } redraw_label(); } -- cgit v1.2.3