update label first, before freeing the old value in ui_label_set (Motif)

Tue, 18 Nov 2025 13:40:15 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 18 Nov 2025 13:40:15 +0100
changeset 908
54150a21abb4
parent 907
d54a72c94320
child 909
28c2a28026ab

update label first, before freeing the old value in ui_label_set (Motif)

application/demo_bindings.c file | annotate | diff | comparison | revisions
ui/motif/label.c file | annotate | diff | comparison | revisions
--- a/application/demo_bindings.c	Tue Nov 18 13:33:38 2025 +0100
+++ b/application/demo_bindings.c	Tue Nov 18 13:40:15 2025 +0100
@@ -90,11 +90,11 @@
     
     ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10, .fill = TRUE) {
         ui_rlabel(obj, .label = "Document:");
-        ui_llabel(obj, .varname = "id");
+        ui_llabel(obj, .varname = "id", .hfill = TRUE, .vfill = TRUE);
         ui_newline(obj);
         
         ui_rlabel(obj, .label = "Name:");
-        ui_llabel(obj, .varname = "name");
+        ui_llabel(obj, .varname = "name", .hfill = TRUE, .vfill = TRUE);
         ui_newline(obj);
         
         ui_combobox(obj, .varname = "doclist", .colspan = 2, .onactivate = switch_document, .getvalue = doclist_get_value, .colspan = 2, .hfill = TRUE);
--- a/ui/motif/label.c	Tue Nov 18 13:33:38 2025 +0100
+++ b/ui/motif/label.c	Tue Nov 18 13:40:15 2025 +0100
@@ -110,15 +110,15 @@
 }
 
 void ui_label_set(UiString *s, const char *str) {
+    Widget w = s->obj;
+    XmString s1 = XmStringCreateLocalized(str ? (char*)str : "");
+    XtVaSetValues(w, XmNlabelString, s1, NULL);
+    XmStringFree(s1);
     if(s->value.free) {
         s->value.free(s->value.ptr);
         s->value.free = NULL;
         s->value.ptr = NULL;
     }
-    Widget w = s->obj;
-    XmString s1 = XmStringCreateLocalized(str ? (char*)str : "");
-    XtVaSetValues(w, XmNlabelString, s1, NULL);
-    XmStringFree(s1);
 }
 
 /* -------------------------- progressbar/spiner -------------------------- */

mercurial