directfb: fix client->gfx_state initialisation

Shortly before the DirectFB 1.7.7 release, an optimisation was added
to CoreGraphicsStateClient_Init() to avoid creating an extended
Graphics State object if it will not later be required:

  4d422fb Client: Create extended Graphics State object when needed for later usage

Unfortunately the client->gfx_state variable used to track the
extended Graphics State object is not initialised, which can lead to
crashes etc due to creation of the Graphics State object erroneously
being skipped.

(From OE-Core rev: 7b4b67da33beff736dc0286ea24e3860480f9650)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Andre McCurdy 2016-06-14 15:51:06 -07:00 committed by Richard Purdie
parent 792fd38885
commit 2a85038dd0
2 changed files with 39 additions and 0 deletions

View File

@ -19,6 +19,7 @@ SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/DirectFB-${PV}.tar.g
file://compar_fn_t.patch \
file://union-sigval.patch \
file://use-PTHREAD_MUTEX_RECURSIVE.patch \
file://fix-client-gfx_state-initialisation.patch \
"
S = "${WORKDIR}/DirectFB-${PV}"

View File

@ -0,0 +1,38 @@
From 8e53c0b9cedb62b82e2b7680d793d433b647ae20 Mon Sep 17 00:00:00 2001
From: Andre McCurdy <armccurdy@gmail.com>
Date: Mon, 13 Jun 2016 13:32:44 -0700
Subject: [PATCH] fix client->gfx_state initialisation
Shortly before the DirectFB 1.7.7 release, an optimisation was added
to CoreGraphicsStateClient_Init() to avoid creating an extended
Graphics State object if it will not later be required:
4d422fb Client: Create extended Graphics State object when needed for later usage
Unfortunately the client->gfx_state variable used to track the
extended Graphics State object is not initialised, which can lead to
crashes etc due to creation of the Graphics State object erroneously
being skipped.
Upstream-Status: Pending
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
---
src/core/CoreGraphicsStateClient.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/core/CoreGraphicsStateClient.cpp b/src/core/CoreGraphicsStateClient.cpp
index 5d46f0e..5007755 100644
--- a/src/core/CoreGraphicsStateClient.cpp
+++ b/src/core/CoreGraphicsStateClient.cpp
@@ -364,6 +364,7 @@ CoreGraphicsStateClient_Init( CoreGraphicsStateClient *client,
client->renderer = NULL;
client->requestor = NULL;
client->throttle = NULL;
+ client->gfx_state = NULL;
if (dfb_config->task_manager) {
if (dfb_config->call_nodirect) {
--
1.9.1