summaryrefslogtreecommitdiffstats
path: root/src/egl/drivers
diff options
context:
space:
mode:
authorEric Engestrom <[email protected]>2017-09-25 22:35:24 +0100
committerEric Engestrom <[email protected]>2018-10-31 11:01:54 +0000
commitcb0980e69aa921af7086e5d00a547735bc3229e2 (patch)
treec9ee9e11bddd37dd98c90699609c29c3f5f53383 /src/egl/drivers
parent21d9b78289fadc09c0dc5cf82eef9e798a99b196 (diff)
egl: move alloc & init out of _eglBuiltInDriver{DRI2,Haiku}
This is a revert of Marek's 84f3afc2e122cb418573 revert, with a missing line added back. I failed a rebase and dropped that crucial line, and didn't do a runtime test after my rebase, and as a result broke EGL for everyone. This commit has been tested by Intel's CI and I re-read it once more, so it should be good this time. -- Note: dropping the EGL_BAD_ALLOC in egl_haiku because it's overwritten by the EGL_NOT_INITIALIZED in eglInitialize(). Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/egl/drivers')
-rw-r--r--src/egl/drivers/dri2/egl_dri2.c13
-rw-r--r--src/egl/drivers/haiku/egl_haiku.cpp16
2 files changed, 6 insertions, 23 deletions
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 8b482c90be0..e38459de0b1 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -3255,16 +3255,11 @@ dri2_interop_export_object(_EGLDisplay *dpy, _EGLContext *ctx,
/**
* This is the main entrypoint into the driver, called by libEGL.
- * Create a new _EGLDriver object and init its dispatch table.
+ * Gets an _EGLDriver object and init its dispatch table.
*/
-_EGLDriver *
-_eglBuiltInDriver(void)
+void
+_eglInitDriver(_EGLDriver *dri2_drv)
{
- _EGLDriver *dri2_drv = calloc(1, sizeof *dri2_drv);
- if (!dri2_drv)
- return NULL;
-
- _eglInitDriverFallbacks(dri2_drv);
dri2_drv->API.Initialize = dri2_initialize;
dri2_drv->API.Terminate = dri2_terminate;
dri2_drv->API.CreateContext = dri2_create_context;
@@ -3316,6 +3311,4 @@ _eglBuiltInDriver(void)
dri2_drv->API.SetBlobCacheFuncsANDROID = dri2_set_blob_cache_funcs;
dri2_drv->Name = "DRI2";
-
- return dri2_drv;
}
diff --git a/src/egl/drivers/haiku/egl_haiku.cpp b/src/egl/drivers/haiku/egl_haiku.cpp
index 287760661e5..590e43f00fb 100644
--- a/src/egl/drivers/haiku/egl_haiku.cpp
+++ b/src/egl/drivers/haiku/egl_haiku.cpp
@@ -305,22 +305,14 @@ haiku_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
/**
* This is the main entrypoint into the driver, called by libEGL.
- * Create a new _EGLDriver object and init its dispatch table.
+ * Gets an _EGLDriver object and init its dispatch table.
*/
extern "C"
-_EGLDriver*
-_eglBuiltInDriver(void)
+void
+_eglInitDriver(_EGLDriver *driver)
{
CALLED();
- _EGLDriver* driver;
- driver = (_EGLDriver*) calloc(1, sizeof(*driver));
- if (!driver) {
- _eglError(EGL_BAD_ALLOC, "_eglBuiltInDriverHaiku");
- return NULL;
- }
-
- _eglInitDriverFallbacks(driver);
driver->API.Initialize = init_haiku;
driver->API.Terminate = haiku_terminate;
driver->API.CreateContext = haiku_create_context;
@@ -336,6 +328,4 @@ _eglBuiltInDriver(void)
driver->Name = "Haiku";
TRACE("API Calls defined\n");
-
- return driver;
}