projects
/
ardour.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5700296
)
fix crashing bug in Pane when accessing dividers
author
Paul Davis
<paul@linuxaudiosystems.com>
Mon, 6 Jun 2016 20:05:43 +0000
(16:05 -0400)
committer
Paul Davis
<paul@linuxaudiosystems.com>
Mon, 6 Jun 2016 20:05:43 +0000
(16:05 -0400)
libs/gtkmm2ext/pane.cc
patch
|
blob
|
history
diff --git
a/libs/gtkmm2ext/pane.cc
b/libs/gtkmm2ext/pane.cc
index aa8e7d142b74655eaa3f0922eacf17dfdd1fe0a8..9f374c67146457e698c4f3f8611be2844b7a3989 100644
(file)
--- a/
libs/gtkmm2ext/pane.cc
+++ b/
libs/gtkmm2ext/pane.cc
@@
-402,14
+402,15
@@
Pane::set_divider (Dividers::size_type div, float fract)
{
Dividers::iterator d = dividers.begin();
{
Dividers::iterator d = dividers.begin();
- while (div--) {
- ++d;
- if (d == dividers.end()) {
- /* caller is trying to set divider that does not exist
- * yet.
- */
- return;
- }
+ for (d = dividers.begin(); d != dividers.end() && div != 0; ++d, --div) {
+ /* relax */
+ }
+
+ if (d == dividers.end()) {
+ /* caller is trying to set divider that does not exist
+ * yet.
+ */
+ return;
}
fract = max (0.0f, min (1.0f, fract));
}
fract = max (0.0f, min (1.0f, fract));
@@
-427,14
+428,15
@@
Pane::get_divider (Dividers::size_type div)
{
Dividers::iterator d = dividers.begin();
{
Dividers::iterator d = dividers.begin();
- while (div--) {
- ++d;
- if (d == dividers.end()) {
- /* caller is trying to set divider that does not exist
- * yet.
- */
- return -1.0f;
- }
+ for (d = dividers.begin(); d != dividers.end() && div != 0; ++d, --div) {
+ /* relax */
+ }
+
+ if (d == dividers.end()) {
+ /* caller is trying to set divider that does not exist
+ * yet.
+ */
+ return -1.0f;
}
return (*d)->fract;
}
return (*d)->fract;