fix crashing bug in Pane when accessing dividers
This commit is contained in:
parent
5700296cb6
commit
9a50d15c7f
@ -402,15 +402,16 @@ 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()) {
|
if (d == dividers.end()) {
|
||||||
/* caller is trying to set divider that does not exist
|
/* caller is trying to set divider that does not exist
|
||||||
* yet.
|
* yet.
|
||||||
*/
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fract = max (0.0f, min (1.0f, fract));
|
fract = max (0.0f, min (1.0f, fract));
|
||||||
|
|
||||||
@ -427,15 +428,16 @@ 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()) {
|
if (d == dividers.end()) {
|
||||||
/* caller is trying to set divider that does not exist
|
/* caller is trying to set divider that does not exist
|
||||||
* yet.
|
* yet.
|
||||||
*/
|
*/
|
||||||
return -1.0f;
|
return -1.0f;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return (*d)->fract;
|
return (*d)->fract;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user