summaryrefslogtreecommitdiff
path: root/frameworks/native/native.git-1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'frameworks/native/native.git-1.patch')
-rw-r--r--frameworks/native/native.git-1.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/frameworks/native/native.git-1.patch b/frameworks/native/native.git-1.patch
new file mode 100644
index 0000000..a446b36
--- /dev/null
+++ b/frameworks/native/native.git-1.patch
@@ -0,0 +1,49 @@
+From 1ff66dc28169874ef32f968da6e8ddd14ef28eba Mon Sep 17 00:00:00 2001
+From: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
+Date: Thu, 25 Jul 2013 13:27:18 +0530
+Subject: [PATCH] surfaceflinger: Don't crash on missing functions in
+ hwcomposers
+
+Some hwcomposers -- most notably hwcomposer.default.so -- don't
+implement blank() or eventControl().
+Don't crash when trying to use them.
+
+Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
+---
+ .../surfaceflinger/DisplayHardware/HWComposer.cpp | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+index c7d1a90..7f9fb2f 100644
+--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
++++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+@@ -493,7 +493,7 @@ void HWComposer::eventControl(int disp, int event, int enabled) {
+ const int32_t oldValue = mDisplayData[disp].events & eventBit;
+ if (newValue != oldValue) {
+ ATRACE_CALL();
+- err = mHwc->eventControl(mHwc, disp, event, enabled);
++ err = mHwc->eventControl ? mHwc->eventControl(mHwc, disp, event, enabled) : NO_ERROR;
+ if (!err) {
+ int32_t& events(mDisplayData[disp].events);
+ events = (events & ~eventBit) | newValue;
+@@ -731,14 +731,15 @@ status_t HWComposer::release(int disp) {
+ LOG_FATAL_IF(disp >= VIRTUAL_DISPLAY_ID_BASE);
+ if (mHwc) {
+ eventControl(disp, HWC_EVENT_VSYNC, 0);
+- return (status_t)mHwc->blank(mHwc, disp, 1);
++ if (mHwc->blank)
++ return (status_t)mHwc->blank(mHwc, disp, 1);
+ }
+ return NO_ERROR;
+ }
+
+ status_t HWComposer::acquire(int disp) {
+ LOG_FATAL_IF(disp >= VIRTUAL_DISPLAY_ID_BASE);
+- if (mHwc) {
++ if (mHwc && mHwc->blank) {
+ return (status_t)mHwc->blank(mHwc, disp, 0);
+ }
+ return NO_ERROR;
+--
+1.7.9.5
+