Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 148235 Details for
Bug 116062
dev-libs/glkloader-0.3.2 (new package)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
glkloader-0.3.2-cache-function-pointers.patch
glkloader-0.3.2-cache-function-pointers.patch (text/plain), 12.12 KB, created by
David Leverton
on 2008-04-03 13:32:07 UTC
(
hide
)
Description:
glkloader-0.3.2-cache-function-pointers.patch
Filename:
MIME Type:
Creator:
David Leverton
Created:
2008-04-03 13:32:07 UTC
Size:
12.12 KB
patch
obsolete
>--- glkloader-0.3.2/generate_glkfuncs.pl~ 2001-03-14 03:07:59.000000000 +0000 >+++ glkloader-0.3.2/generate_glkfuncs.pl 2007-12-10 22:38:02.000000000 +0000 >@@ -307,7 +307,9 @@ > > print OUT_FILE "$ret_type $name(", createArgList (@arg_list), ")\n"; > print OUT_FILE "{\n"; >- print OUT_FILE " $ret_type (*funcPtr)(", createArgList (@arg_list), ");\n"; >+ print OUT_FILE " static $ret_type (*funcPtr)(", createArgList (@arg_list), ");\n"; >+ print OUT_FILE "\n"; >+ print OUT_FILE " if (! funcPtr) {\n"; > print OUT_FILE " char * errBuf = NULL;\n"; > print OUT_FILE "\n"; > print OUT_FILE " funcPtr = loadSymbol(gGlkLib, \"$name\", &errBuf);\n"; >@@ -315,6 +317,7 @@ > print OUT_FILE " fprintf(stderr, \"%s\\n\", errBuf);\n"; > print OUT_FILE " exit(1);\n"; > print OUT_FILE " }\n"; >+ print OUT_FILE " }\n"; > print OUT_FILE "\n"; > if ($ret_type eq "void") > { >--- glkloader-0.3.2/blorbfuncs.c~ 2007-12-10 22:36:47.000000000 +0000 >+++ glkloader-0.3.2/blorbfuncs.c 2007-12-10 22:38:02.000000000 +0000 >@@ -46,7 +46,9 @@ > > giblorb_err_t giblorb_set_resource_map(strid_t file) > { >- giblorb_err_t (*funcPtr)(strid_t file); >+ static giblorb_err_t (*funcPtr)(strid_t file); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "giblorb_set_resource_map", &errBuf); >@@ -54,13 +56,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(file); > } > > giblorb_map_t *giblorb_get_resource_map(void) > { >- giblorb_map_t * (*funcPtr)(void); >+ static giblorb_map_t * (*funcPtr)(void); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "giblorb_get_resource_map", &errBuf); >@@ -68,13 +73,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(); > } > > giblorb_err_t giblorb_create_map(strid_t file, giblorb_map_t **newmap) > { >- giblorb_err_t (*funcPtr)(strid_t file, giblorb_map_t **newmap); >+ static giblorb_err_t (*funcPtr)(strid_t file, giblorb_map_t **newmap); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "giblorb_create_map", &errBuf); >@@ -82,13 +90,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(file, newmap); > } > > giblorb_err_t giblorb_destroy_map(giblorb_map_t *map) > { >- giblorb_err_t (*funcPtr)(giblorb_map_t *map); >+ static giblorb_err_t (*funcPtr)(giblorb_map_t *map); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "giblorb_destroy_map", &errBuf); >@@ -96,6 +107,7 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(map); > } >@@ -103,8 +115,10 @@ > giblorb_err_t giblorb_load_chunk_by_type(giblorb_map_t *map, > glui32 method, giblorb_result_t *res, glui32 chunktype, glui32 count) > { >- giblorb_err_t (*funcPtr)(giblorb_map_t *map, >+ static giblorb_err_t (*funcPtr)(giblorb_map_t *map, > glui32 method, giblorb_result_t *res, glui32 chunktype, glui32 count); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "giblorb_load_chunk_by_type", &errBuf); >@@ -112,6 +126,7 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(map, method, res, chunktype, count); > } >@@ -119,8 +134,10 @@ > giblorb_err_t giblorb_load_chunk_by_number(giblorb_map_t *map, > glui32 method, giblorb_result_t *res, glui32 chunknum) > { >- giblorb_err_t (*funcPtr)(giblorb_map_t *map, >+ static giblorb_err_t (*funcPtr)(giblorb_map_t *map, > glui32 method, giblorb_result_t *res, glui32 chunknum); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "giblorb_load_chunk_by_number", &errBuf); >@@ -128,13 +145,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(map, method, res, chunknum); > } > > giblorb_err_t giblorb_unload_chunk(giblorb_map_t *map, glui32 chunknum) > { >- giblorb_err_t (*funcPtr)(giblorb_map_t *map, glui32 chunknum); >+ static giblorb_err_t (*funcPtr)(giblorb_map_t *map, glui32 chunknum); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "giblorb_unload_chunk", &errBuf); >@@ -142,6 +162,7 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(map, chunknum); > } >@@ -149,8 +170,10 @@ > giblorb_err_t giblorb_load_resource(giblorb_map_t *map, > glui32 method, giblorb_result_t *res, glui32 usage, glui32 resnum) > { >- giblorb_err_t (*funcPtr)(giblorb_map_t *map, >+ static giblorb_err_t (*funcPtr)(giblorb_map_t *map, > glui32 method, giblorb_result_t *res, glui32 usage, glui32 resnum); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "giblorb_load_resource", &errBuf); >@@ -158,6 +181,7 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(map, method, res, usage, resnum); > } >@@ -165,8 +189,10 @@ > giblorb_err_t giblorb_count_resources(giblorb_map_t *map, > glui32 usage, glui32 *num, glui32 *min, glui32 *max) > { >- giblorb_err_t (*funcPtr)(giblorb_map_t *map, >+ static giblorb_err_t (*funcPtr)(giblorb_map_t *map, > glui32 usage, glui32 *num, glui32 *min, glui32 *max); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "giblorb_count_resources", &errBuf); >@@ -174,6 +200,7 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(map, usage, num, min, max); > } >--- glkloader-0.3.2/dispafuncs.c~ 2007-12-10 22:36:47.000000000 +0000 >+++ glkloader-0.3.2/dispafuncs.c 2007-12-10 22:38:02.000000000 +0000 >@@ -48,9 +48,11 @@ > gidispatch_rock_t (*regi)(void *obj, glui32 objclass), > void (*unregi)(void *obj, glui32 objclass, gidispatch_rock_t objrock)) > { >- void (*funcPtr)( >+ static void (*funcPtr)( > gidispatch_rock_t (*regi)(void *obj, glui32 objclass), > void (*unregi)(void *obj, glui32 objclass, gidispatch_rock_t objrock)); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_set_object_registry", &errBuf); >@@ -58,13 +60,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > (*funcPtr)(regi, unregi); > } > > gidispatch_rock_t gidispatch_get_objrock(void *obj, glui32 objclass) > { >- gidispatch_rock_t (*funcPtr)(void *obj, glui32 objclass); >+ static gidispatch_rock_t (*funcPtr)(void *obj, glui32 objclass); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_get_objrock", &errBuf); >@@ -72,6 +77,7 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(obj, objclass); > } >@@ -81,10 +87,12 @@ > void (*unregi)(void *array, glui32 len, char *typecode, > gidispatch_rock_t objrock)) > { >- void (*funcPtr)( >+ static void (*funcPtr)( > gidispatch_rock_t (*regi)(void *array, glui32 len, char *typecode), > void (*unregi)(void *array, glui32 len, char *typecode, > gidispatch_rock_t objrock)); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_set_retained_registry", &errBuf); >@@ -92,13 +100,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(regi, unregi); > } > > void gidispatch_call(glui32 funcnum, glui32 numargs, gluniversal_t *arglist) > { >- void (*funcPtr)(glui32 funcnum, glui32 numargs, gluniversal_t *arglist); >+ static void (*funcPtr)(glui32 funcnum, glui32 numargs, gluniversal_t *arglist); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_call", &errBuf); >@@ -106,13 +117,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(funcnum, numargs, arglist); > } > > char *gidispatch_prototype(glui32 funcnum) > { >- char * (*funcPtr)(glui32 funcnum); >+ static char * (*funcPtr)(glui32 funcnum); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_prototype", &errBuf); >@@ -120,13 +134,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(funcnum); > } > > glui32 gidispatch_count_classes(void) > { >- glui32 (*funcPtr)(void); >+ static glui32 (*funcPtr)(void); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_count_classes", &errBuf); >@@ -134,13 +151,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(); > } > > gidispatch_intconst_t *gidispatch_get_class(glui32 index) > { >- gidispatch_intconst_t * (*funcPtr)(glui32 index); >+ static gidispatch_intconst_t * (*funcPtr)(glui32 index); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_get_class", &errBuf); >@@ -148,13 +168,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(index); > } > > glui32 gidispatch_count_intconst(void) > { >- glui32 (*funcPtr)(void); >+ static glui32 (*funcPtr)(void); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_count_intconst", &errBuf); >@@ -162,13 +185,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(); > } > > gidispatch_intconst_t *gidispatch_get_intconst(glui32 index) > { >- gidispatch_intconst_t * (*funcPtr)(glui32 index); >+ static gidispatch_intconst_t * (*funcPtr)(glui32 index); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_get_intconst", &errBuf); >@@ -176,13 +202,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(index); > } > > glui32 gidispatch_count_functions(void) > { >- glui32 (*funcPtr)(void); >+ static glui32 (*funcPtr)(void); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_count_functions", &errBuf); >@@ -190,13 +219,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(); > } > > gidispatch_function_t *gidispatch_get_function(glui32 index) > { >- gidispatch_function_t * (*funcPtr)(glui32 index); >+ static gidispatch_function_t * (*funcPtr)(glui32 index); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_get_function", &errBuf); >@@ -204,13 +236,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(index); > } > > gidispatch_function_t *gidispatch_get_function_by_id(glui32 id) > { >- gidispatch_function_t * (*funcPtr)(glui32 id); >+ static gidispatch_function_t * (*funcPtr)(glui32 id); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "gidispatch_get_function_by_id", &errBuf); >@@ -218,6 +253,7 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(id); > } >--- glkloader-0.3.2/unixfuncs.c~ 2001-03-14 03:07:59.000000000 +0000 >+++ glkloader-0.3.2/unixfuncs.c 2007-12-10 22:38:02.000000000 +0000 >@@ -46,7 +46,9 @@ > strid_t glkunix_stream_open_pathname(char *pathname, glui32 textmode, > glui32 rock) > { >- strid_t (*funcPtr)(char *pathname, glui32 textmode, glui32 rock); >+ static strid_t (*funcPtr)(char *pathname, glui32 textmode, glui32 rock); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "glkunix_stream_open_pathname", &errBuf); >@@ -54,13 +56,16 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > return (*funcPtr)(pathname, textmode, rock); > } > > void glkunix_set_base_file(char *filename) > { >- void (*funcPtr)(char *filename); >+ static void (*funcPtr)(char *filename); >+ >+ if (! funcPtr) { > char * errBuf = NULL; > > funcPtr = loadSymbol(gGlkLib, "glkunix_set_base_file", &errBuf); >@@ -68,6 +73,7 @@ > fprintf(stderr, "%s\n", errBuf); > exit(1); > } >+ } > > (*funcPtr)(filename); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 116062
:
75116
|
75117
|
75118
|
124567
|
124569
|
126145
|
126147
|
138033
|
138034
|
138036
|
138037
|
148223
|
148225
|
148226
|
148227
|
148229
|
148231
|
148233
| 148235 |
148237
|
148238
|
148240
|
148242
|
148243