| Index: core/fxge/agg/fx_agg_driver.cpp
|
| diff --git a/core/fxge/agg/fx_agg_driver.cpp b/core/fxge/agg/fx_agg_driver.cpp
|
| index 6726877d992c283064f0e4816f82e7119b4fd86e..86326f6caf738c5666250b24fb8eb79703e631ef 100644
|
| --- a/core/fxge/agg/fx_agg_driver.cpp
|
| +++ b/core/fxge/agg/fx_agg_driver.cpp
|
| @@ -284,21 +284,21 @@ void CFX_AggDeviceDriver::SaveState() {
|
| m_StateStack.Add(pClip);
|
| }
|
|
|
| -void CFX_AggDeviceDriver::RestoreState(FX_BOOL bKeepSaved) {
|
| - if (m_StateStack.GetSize() == 0) {
|
| - delete m_pClipRgn;
|
| - m_pClipRgn = nullptr;
|
| - return;
|
| - }
|
| - CFX_ClipRgn* pSavedClip = m_StateStack[m_StateStack.GetSize() - 1];
|
| +void CFX_AggDeviceDriver::RestoreState(bool bKeepSaved) {
|
| delete m_pClipRgn;
|
| m_pClipRgn = nullptr;
|
| +
|
| + int size = m_StateStack.GetSize();
|
| + if (!size)
|
| + return;
|
| +
|
| + CFX_ClipRgn* pSavedClip = m_StateStack[size - 1];
|
| if (bKeepSaved) {
|
| if (pSavedClip) {
|
| m_pClipRgn = new CFX_ClipRgn(*pSavedClip);
|
| }
|
| } else {
|
| - m_StateStack.RemoveAt(m_StateStack.GetSize() - 1);
|
| + m_StateStack.RemoveAt(size - 1);
|
| m_pClipRgn = pSavedClip;
|
| }
|
| }
|
|
|