13
0

fix crashing bug in Pane when accessing dividers

This commit is contained in:
Paul Davis 2016-06-06 16:05:43 -04:00
parent 5700296cb6
commit 9a50d15c7f

View File

@ -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--) { for (d = dividers.begin(); d != dividers.end() && div != 0; ++d, --div) {
++d; /* relax */
if (d == dividers.end()) { }
/* caller is trying to set divider that does not exist
* yet. if (d == dividers.end()) {
*/ /* caller is trying to set divider that does not exist
return; * 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--) { for (d = dividers.begin(); d != dividers.end() && div != 0; ++d, --div) {
++d; /* relax */
if (d == dividers.end()) { }
/* caller is trying to set divider that does not exist
* yet. if (d == dividers.end()) {
*/ /* caller is trying to set divider that does not exist
return -1.0f; * yet.
} */
return -1.0f;
} }
return (*d)->fract; return (*d)->fract;