| From f43ef44806ffb8e3b35d99070dde9b6cc1714d3d Mon Sep 17 00:00:00 2001 |
| From: Khem Raj <raj.khem@gmail.com> |
| Date: Tue, 8 Sep 2015 21:32:20 +0000 |
| Subject: [PATCH] gfx,direct: Aboid usng VLAs and printf formats |
| |
| VLAs are flagged by clang when using non-POD types, therefore replace |
| the usage with alloca which is exact same allocation on stack |
| |
| __attribute__((__format__ (__printf__))) is not portable as used here |
| therefore disable the check for clang here, we lose no functionality |
| |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- |
| Upstream-Status: Pending |
| |
| lib/direct/util.h | 2 +- |
| src/gfx/util.cpp | 8 ++++---- |
| 2 files changed, 5 insertions(+), 5 deletions(-) |
| |
| diff --git a/lib/direct/util.h b/lib/direct/util.h |
| index 72941e9..8e7fa4a 100644 |
| --- a/lib/direct/util.h |
| +++ b/lib/direct/util.h |
| @@ -98,7 +98,7 @@ |
| #define D_CONST_FUNC |
| #endif |
| |
| -#if __GNUC__ >= 3 |
| +#if __GNUC__ >= 3 && !defined __clang__ |
| #define D_FORMAT_PRINTF(n) __attribute__((__format__ (__printf__, n, n+1))) |
| #define D_FORMAT_VPRINTF(n) __attribute__((__format__ (__printf__, n, 0))) |
| #else |
| diff --git a/src/gfx/util.cpp b/src/gfx/util.cpp |
| index 40032bc..d1015d4 100644 |
| --- a/src/gfx/util.cpp |
| +++ b/src/gfx/util.cpp |
| @@ -294,8 +294,8 @@ dfb_gfx_copy_regions_stereo( CoreSurface *source, |
| { |
| unsigned int i, n = 0; |
| DFBRectangle rect = { 0, 0, source->config.size.w, source->config.size.h }; |
| - DFBRectangle rects[num]; |
| - DFBPoint points[num]; |
| + DFBRectangle *rects = (DFBRectangle*)alloca( sizeof(struct DFBRectangle) * num); |
| + DFBPoint *points = (DFBPoint*)alloca( sizeof(struct DFBPoint) * num); |
| |
| for (i=0; i<num; i++) { |
| DFB_REGION_ASSERT( ®ions[i] ); |
| @@ -351,8 +351,8 @@ dfb_gfx_copy_regions_client( CoreSurface *source, |
| { |
| unsigned int i, n = 0; |
| DFBRectangle rect = { 0, 0, source->config.size.w, source->config.size.h }; |
| - DFBRectangle rects[num]; |
| - DFBPoint points[num]; |
| + DFBRectangle *rects = (DFBRectangle*)alloca( sizeof(struct DFBRectangle) * num); |
| + DFBPoint *points = (DFBPoint*)alloca( sizeof(struct DFBPoint) * num); |
| CoreGraphicsStateClient *client = _client ? _client : &StateClient::Get()->client; |
| CardState *state = client->state; |
| CardState backup; |
| -- |
| 2.5.1 |
| |