changeset 21652:2e07dcdc6139

legend.m: Check handle is valid before delete (partial fix bug #47699). * legend.m (deletelegend2): Check that invisible object t1 is valid before trying to delete it. It may already have been deleted. * legend.m (hideshowlegend): Use variable name hlegend, not ca, for truth in advertising.
author Rik <rik@octave.org>
date Thu, 28 Apr 2016 12:12:21 -0700
parents b4354327d2b5
children 09c086133228
files scripts/plot/appearance/legend.m
diffstat 1 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/plot/appearance/legend.m	Tue Apr 12 21:29:01 2016 +1000
+++ b/scripts/plot/appearance/legend.m	Thu Apr 28 12:12:21 2016 -0700
@@ -1148,11 +1148,11 @@
   endfor
 endfunction
 
-function deletelegend1 (h, ~, ca)
-  if (isaxes (ca)
+function deletelegend1 (h, ~, hlegend)
+  if (isaxes (hlegend)
       && (isempty (gcbf ()) || strcmp (get (gcbf (), "beingdeleted"), "off"))
-      && strcmp (get (ca, "beingdeleted"), "off"))
-    delete (ca);
+      && strcmp (get (hlegend, "beingdeleted"), "off"))
+    delete (hlegend);
   endif
 endfunction
 
@@ -1172,8 +1172,10 @@
       endif
     endif
   endfor
-  set (t1, "deletefcn", "");
-  delete (t1);
+  if (ishandle (t1))
+    set (t1, "deletefcn", "");
+    delete (t1);
+  endif
   for i = 1 : numel (hplots)
     if (ishandle (hplots(i)) && strcmp (get (hplots(i), "type"), "line"))
       dellistener (hplots(i), "color");