added locks in incremental plot function - gsl-shell.git - gsl-shell

index : gsl-shell.git
gsl-shell
summary refs log tree commit diff
path: root/agg-plot/window.cpp
diff options
context:
space:
mode:
authorfrancesco-ST <francesco.abbate@st.com>2010年09月03日 14:07:29 +0200
committerfrancesco-ST <francesco.abbate@st.com>2010年09月03日 14:07:29 +0200
commit665467b1fdcec90ddad2b8b4043fe57e550ebaa2 (patch)
tree1847a02fe7794e1f3144bdd64d16a8d69d1c1ebf /agg-plot/window.cpp
parent9a592c9ad1662190cbd77f6a1cf465045f9f7baa (diff)
downloadgsl-shell-665467b1fdcec90ddad2b8b4043fe57e550ebaa2.tar.gz
added locks in incremental plot function
Diffstat (limited to 'agg-plot/window.cpp')
-rw-r--r--agg-plot/window.cpp 17
1 files changed, 11 insertions, 6 deletions
diff --git a/agg-plot/window.cpp b/agg-plot/window.cpp
index 58863bb2..0d7f6c8b 100644
--- a/agg-plot/window.cpp
+++ b/agg-plot/window.cpp
@@ -164,12 +164,17 @@ window::refresh_slot_by_ref(ref& ref)
this->scale(mtx);
agg::rect_base<double> bb;
- plot_type::iterator *current = ref.plot->drawing_start();
- while (ref.plot->draw_queue(*m_canvas, mtx, bb, current))
- {
- agg::rect_base<int> bbw(bb.x1 - 4, bb.y1 - 4, bb.x2 + 4, bb.y2 + 4);
- platform_support_update_region (this, bbw);
- }
+ AGG_LOCK();
+ try {
+ plot_type::iterator *current = ref.plot->drawing_start();
+ while (ref.plot->draw_queue(*m_canvas, mtx, bb, current))
+ {
+ agg::rect_base<int> bbw(bb.x1 - 4, bb.y1 - 4, bb.x2 + 4, bb.y2 + 4);
+ platform_support_update_region (this, bbw);
+ }
+ }
+ catch (std::bad_alloc&) { }
+ AGG_UNLOCK();
}
void
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月13日 02:05:59 +0000

AltStyle によって変換されたページ (->オリジナル) /