On 05/26/2015 05:56 PM, Ian Romanick wrote:
From: Ian Romanick <ian.d.roman...@intel.com>

Encapsulate the knowledge about how to build the nop table in a new
_mesa_new_nop_table function.  This makes it easier for dispatch_sanity
to keep working now and in the future.

Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
Cc: Brian Paul <bri...@vmware.com>
Cc: Emil Velikov <emil.l.veli...@gmail.com>
Cc: 10.6 <mesa-sta...@lists.freedesktop.org>
---
I sent this just a few minutes after the previous version of the patch.
I was hoping to to get the squashed version out before Brian pushed his
patch, but I was too slow.

  src/mesa/main/api_exec.h                |  3 +++
  src/mesa/main/context.c                 | 16 ++++++++--------
  src/mesa/main/tests/dispatch_sanity.cpp |  2 +-
  3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/mesa/main/api_exec.h b/src/mesa/main/api_exec.h
index 12249fe..655cb32 100644
--- a/src/mesa/main/api_exec.h
+++ b/src/mesa/main/api_exec.h
@@ -38,6 +38,9 @@ _mesa_initialize_exec_table(struct gl_context *ctx);
  extern void
  _mesa_initialize_dispatch_tables(struct gl_context *ctx);

+extern struct _glapi_table *
+_mesa_new_nop_table(unsigned numEntries);
+
  #ifdef __cplusplus
  } // extern "C"
  #endif
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 02875ba..e4faf3d 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -962,12 +962,12 @@ generic_nop(void)
   * the __stdcall convention which requires the callee to clean up the
   * call stack.  That's impossible with one generic no-op function.
   */
-#if !USE_GLAPI_NOP_FEATURES
-static struct _glapi_table *
-new_nop_table(unsigned numEntries)
+struct _glapi_table *
+_mesa_new_nop_table(unsigned numEntries)
  {
     struct _glapi_table *table;

+#if !USE_GLAPI_NOP_FEATURES
     table = malloc(numEntries * sizeof(_glapi_proc));
     if (table) {
        _glapi_proc *entry = (_glapi_proc *) table;
@@ -976,9 +976,11 @@ new_nop_table(unsigned numEntries)
           entry[i] = (_glapi_proc) generic_nop;
        }
     }
+#else
+   table = _glapi_new_nop_table(numEntries);
+#endif
     return table;
  }
-#endif


  /**
@@ -996,10 +998,7 @@ alloc_dispatch_table(void)
      */
     int numEntries = MAX2(_glapi_get_dispatch_table_size(), _gloffset_COUNT);

-#if !USE_GLAPI_NOP_FEATURES
-   struct _glapi_table *table = new_nop_table(numEntries);
-#else
-   struct _glapi_table *table = _glapi_new_nop_table(numEntries);
+   struct _glapi_table *table = _mesa_new_nop_table(numEntries);

  #if defined(_WIN32)
     if (table) {
@@ -1023,6 +1022,7 @@ alloc_dispatch_table(void)
     }
  #endif

+#if USE_GLAPI_NOP_FEATURES
     _glapi_set_nop_handler(nop_handler);
  #endif

diff --git a/src/mesa/main/tests/dispatch_sanity.cpp 
b/src/mesa/main/tests/dispatch_sanity.cpp
index d38b68d..c6f3c39 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -96,7 +96,7 @@ DispatchSanity_test::SetUp()
     _mesa_init_driver_functions(&driver_functions);

     const unsigned size = _glapi_get_dispatch_table_size();
-   nop_table = (_glapi_proc *) _glapi_new_nop_table(size);
+   nop_table = (_glapi_proc *) _mesa_new_nop_table(size);
  }

  void


Reviewed-by: Brian Paul <bri...@vmware.com>

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to