summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Roberts <neil@linux.intel.com>2010-10-25 13:15:01 +0100
committerNeil Roberts <neil@linux.intel.com>2010-10-25 13:54:08 +0100
commit87d5e5ae1a5c9393103d3479d799bdf0b16bcffb (patch)
tree8c1016acb4d36d38828854ae25ddf0c23815886b
parent0e2cac09785cbeeeb38998b8301d559c794a8bc3 (diff)
downloadclutter-87d5e5ae1a5c9393103d3479d799bdf0b16bcffb.tar.gz
cogl-context-winsys: Avoid zero-length arrays
When compiling for non-glx platforms the winsys feature data array ends up empty. Empty arrays cause problems for MSVC so this patch adds a stub entry so that the array always has at least one entry. Based on a patch by Ole André Vadla Ravnås (cherry picked from commit cc7977988c92ad7fa96f0a1dd0a8581432f090ca)
-rw-r--r--clutter/cogl/cogl/winsys/cogl-context-winsys.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/clutter/cogl/cogl/winsys/cogl-context-winsys.c b/clutter/cogl/cogl/winsys/cogl-context-winsys.c
index d1805416d..282df1598 100644
--- a/clutter/cogl/cogl/winsys/cogl-context-winsys.c
+++ b/clutter/cogl/cogl/winsys/cogl-context-winsys.c
@@ -60,8 +60,14 @@
static const CoglFeatureData cogl_winsys_feature_data[] =
{
#include "cogl-winsys-feature-functions.h"
+
+ /* This stub is just here so that if the header is empty then we
+ won't end up declaring an empty array */
+ { 0, }
};
+#define COGL_WINSYS_N_FEATURES (G_N_ELEMENTS (cogl_winsys_feature_data) - 1)
+
static const char *
_cogl_get_winsys_extensions (void)
{
@@ -81,7 +87,7 @@ _cogl_winsys_features_init (CoglContext *context)
const char *extensions = _cogl_get_winsys_extensions ();
int i;
- for (i = 0; i < G_N_ELEMENTS (cogl_winsys_feature_data); i++)
+ for (i = 0; i < COGL_WINSYS_N_FEATURES; i++)
if (_cogl_feature_check ("GLX", cogl_winsys_feature_data + i, 0, 0,
extensions))
flags |= cogl_winsys_feature_data[i].feature_flags;