[aseprite] 185/196: Avoid using an uninitialized m_surface pointer in SkiaDisplay
Tobias Hansen
thansen at moszumanska.debian.org
Wed Apr 20 18:50:18 UTC 2016
This is an automated email from the git hooks/post-receive script.
thansen pushed a commit to branch master
in repository aseprite.
commit 25a24a93d8eb868ff9eca095ac226da816b57bce
Author: David Capello <davidcapello at gmail.com>
Date: Wed Apr 13 09:00:29 2016 -0300
Avoid using an uninitialized m_surface pointer in SkiaDisplay
This should fix problems launching Aseprite on OS X (e.g. #1059).
---
src/she/skia/skia_display.cpp | 7 +++++--
src/she/skia/skia_display.h | 4 ++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/she/skia/skia_display.cpp b/src/she/skia/skia_display.cpp
index 5389499..49760a6 100644
--- a/src/she/skia/skia_display.cpp
+++ b/src/she/skia/skia_display.cpp
@@ -18,7 +18,8 @@
namespace she {
SkiaDisplay::SkiaDisplay(int width, int height, int scale)
- : m_window(instance()->eventQueue(), this, width, height, scale)
+ : m_initialized(false)
+ , m_window(instance()->eventQueue(), this, width, height, scale)
, m_surface(new SkiaSurface)
, m_customSurface(false)
, m_nativeCursor(kArrowCursor)
@@ -27,6 +28,8 @@ SkiaDisplay::SkiaDisplay(int width, int height, int scale)
height / scale);
m_window.setScale(scale);
m_window.setVisible(true);
+
+ m_initialized = true;
}
void SkiaDisplay::setSkiaSurface(SkiaSurface* surface)
@@ -56,7 +59,7 @@ void SkiaDisplay::resize(const gfx::Size& size)
ev.setDisplay(this);
she::queue_event(ev);
- if (m_customSurface)
+ if (!m_initialized || m_customSurface)
return;
m_surface->dispose();
diff --git a/src/she/skia/skia_display.h b/src/she/skia/skia_display.h
index 5e78223..367bea7 100644
--- a/src/she/skia/skia_display.h
+++ b/src/she/skia/skia_display.h
@@ -60,6 +60,10 @@ public:
DisplayHandle nativeHandle() override;
private:
+ // Flag used to avoid accessing to an invalid m_surface in the first
+ // SkiaDisplay::resize() call when the SkiaWindow is created (as the
+ // window is created, it send a first resize event.)
+ bool m_initialized;
SkiaWindow m_window;
SkiaSurface* m_surface;
bool m_customSurface;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git
More information about the Pkg-games-commits
mailing list