]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
TextBox: properly delete buffer
authorFreddy <schro.sb@gmail.com>
Sun, 5 Jan 2020 21:14:10 +0000 (22:14 +0100)
committerFreddy <schro.sb@gmail.com>
Sun, 5 Jan 2020 21:14:10 +0000 (22:14 +0100)
qcsrc/menu/xonotic/textbox.qc
qcsrc/menu/xonotic/textbox.qh

index 4e6817d37b8ef1823dce7b89e45b868ec658db8c..efad0e8ea80bfd350d0d354a3355cea907a99637 100644 (file)
@@ -8,8 +8,23 @@ entity makeXonoticTextBox()
        return me;
 }
 
+void XonoticTextBox_destroy(entity me)
+{
+    if (me.stringList >= 0)
+    {
+        buf_del(me.stringList);
+        me.stringList = -1;
+    }
+}
+
 void XonoticTextBox_setText(entity me, string text)
 {
+    if (me.stringList >= 0)
+    {
+        buf_del(me.stringList);
+        me.stringList = -1;
+    }
+
        int buf;
     int line = 0;
 
@@ -34,7 +49,11 @@ void XonoticTextBox_setText(entity me, string text)
 
 string XonoticTextBox_getTextBoxContent(entity me, int i)
 {
-       return bufstr_get(me.stringList, i);
+    if (me.stringList >= 0)
+    {
+           return bufstr_get(me.stringList, i);
+    }
+    return string_null;
 }
 
 // mostly copied from playerlist
index 323a9bb2b443e6da582f329ce84014371bceb90e..4f8c6633cd64196cc91006998a884588dd5e5022 100644 (file)
@@ -4,6 +4,7 @@
 
 // slightly hacky multiline textbox with scrollbar
 CLASS(XonoticTextBox, XonoticListBox)
+    METHOD(XonoticTextBox, destroy, void(entity));
        ATTRIB(XonoticTextBox, rowsPerItem, float, 1);
        METHOD(XonoticTextBox, resizeNotify, void(entity, vector, vector, vector, vector));
        METHOD(XonoticTextBox, drawListBoxItem, void(entity, int, vector, bool, bool));