diff libgui/graphics/Canvas.cc @ 19989:b6061813a693

always obtain gh_manager lock before accessing graphics objects * Canvas.cc (Canvas::print, Canvas::updateCurrentPoint): Use gh_manager::auto_lock before accessing object. * Container.cc (Container::canvas): Likewise. * ContextMenu.cc (ContextMenu::executeAt): Likewise. * Figure.cc (hasUiControlChildren, hasUiMenuChildren): Likewise. * GLCanvas.cc (GLCanvas::draw): Likewise. * Object.cc (Object::objectDestroyed): Likewise. * __init_qt__.cc (__init__, __shutdown__): Likewise.
author John W. Eaton <jwe@octave.org>
date Tue, 17 Mar 2015 20:16:16 -0400
parents ed51e17f6ccf
children 210b301a3e39
line wrap: on
line diff
--- a/libgui/graphics/Canvas.cc	Tue Mar 17 20:10:01 2015 -0400
+++ b/libgui/graphics/Canvas.cc	Tue Mar 17 20:16:16 2015 -0400
@@ -91,6 +91,7 @@
 
 void Canvas::print (const QString& file_cmd, const QString& term)
 {
+  gh_manager::auto_lock lock;
   graphics_object obj = gh_manager::get_object (m_handle);
 
   if (obj.valid_object ())
@@ -104,6 +105,8 @@
 void Canvas::updateCurrentPoint(const graphics_object& fig,
                                 const graphics_object& obj, QMouseEvent* event)
 {
+  gh_manager::auto_lock lock;
+
   gh_manager::post_set (fig.get_handle (), "currentpoint",
                         Utils::figureCurrentPoint (fig, event), false);