On 27/06/17 21:20, Samuel Pitoiset wrote:
Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
---
  src/mesa/main/bufferobj.c | 45 ++++++++++++++++++++++++++-------------------
  1 file changed, 26 insertions(+), 19 deletions(-)

diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 6e2979f6db9..e31fcc357da 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -1416,26 +1416,11 @@ _mesa_DeleteBuffers(GLsizei n, const GLuint *ids)
   * driver internals.
   */
  static void
-create_buffers(GLsizei n, GLuint *buffers, bool dsa)
+create_buffers(struct gl_context *ctx, GLsizei n, GLuint *buffers, bool dsa)
  {
-   GET_CURRENT_CONTEXT(ctx);
     GLuint first;
     struct gl_buffer_object *buf;
- const char *func = dsa ? "glCreateBuffers" : "glGenBuffers";
-
-   if (MESA_VERBOSE & VERBOSE_API)
-      _mesa_debug(ctx, "%s(%d)\n", func, n);
-
-   if (n < 0) {
-      _mesa_error(ctx, GL_INVALID_VALUE, "%s(n %d < 0)", func, n);
-      return;
-   }
-
-   if (!buffers) {
-      return;
-   }

Passing NULL buffers is not an error so we should leave this here. It should just return on a no error path also.

With that:

Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com>

-
     /*
      * This must be atomic (generation and allocation of buffer object IDs)
      */
@@ -1453,7 +1438,7 @@ create_buffers(GLsizei n, GLuint *buffers, bool dsa)
           assert(ctx->Driver.NewBufferObject);
           buf = ctx->Driver.NewBufferObject(ctx, buffers[i]);
           if (!buf) {
-            _mesa_error(ctx, GL_OUT_OF_MEMORY, "%s", func);
+            _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCreateBuffers");
              _mesa_HashUnlockMutex(ctx->Shared->BufferObjects);
              return;
           }
@@ -1467,6 +1452,26 @@ create_buffers(GLsizei n, GLuint *buffers, bool dsa)
     _mesa_HashUnlockMutex(ctx->Shared->BufferObjects);
  }
+
+static void
+create_buffers_err(struct gl_context *ctx, GLsizei n, GLuint *buffers, bool 
dsa)
+{
+   const char *func = dsa ? "glCreateBuffers" : "glGenBuffers";
+
+   if (MESA_VERBOSE & VERBOSE_API)
+      _mesa_debug(ctx, "%s(%d)\n", func, n);
+
+   if (n < 0) {
+      _mesa_error(ctx, GL_INVALID_VALUE, "%s(n %d < 0)", func, n);
+      return;
+   }
+
+   if (!buffers)
+      return;
+
+   create_buffers(ctx, n, buffers, dsa);
+}
+
  /**
   * Generate a set of unique buffer object IDs and store them in \c buffers.
   *
@@ -1476,7 +1481,8 @@ create_buffers(GLsizei n, GLuint *buffers, bool dsa)
  void GLAPIENTRY
  _mesa_GenBuffers(GLsizei n, GLuint *buffers)
  {
-   create_buffers(n, buffers, false);
+   GET_CURRENT_CONTEXT(ctx);
+   create_buffers_err(ctx, n, buffers, false);
  }
/**
@@ -1488,7 +1494,8 @@ _mesa_GenBuffers(GLsizei n, GLuint *buffers)
  void GLAPIENTRY
  _mesa_CreateBuffers(GLsizei n, GLuint *buffers)
  {
-   create_buffers(n, buffers, true);
+   GET_CURRENT_CONTEXT(ctx);
+   create_buffers_err(ctx, n, buffers, true);
  }
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to