Changeset: bbbf1ebf316f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bbbf1ebf316f
Modified Files:
sql/server/rel_proto_loader.c
sql/server/rel_proto_loader.h
Branch: odbc_loader
Log Message:
Reorder code (place pl_find before pl_register and pl_unregister).
Added const to the char * name argument.
diffs (95 lines):
diff --git a/sql/server/rel_proto_loader.c b/sql/server/rel_proto_loader.c
--- a/sql/server/rel_proto_loader.c
+++ b/sql/server/rel_proto_loader.c
@@ -16,27 +16,20 @@
#define NR_PROTO_LOADERS 255
static proto_loader_t proto_loaders[NR_PROTO_LOADERS] = { 0 };
-void
-pl_exit(void)
+proto_loader_t*
+pl_find(const char *name)
{
+ if (!name)
+ return NULL;
for (int i = 0; i < NR_PROTO_LOADERS; i++) {
- if (proto_loaders[i].name)
- GDKfree(proto_loaders[i].name);
+ if (proto_loaders[i].name && strcmp(proto_loaders[i].name,
name) == 0)
+ return proto_loaders+i;
}
-}
-
-void
-pl_unregister(char *name)
-{
- proto_loader_t *fl = pl_find(name);
- if (fl) {
- GDKfree(fl->name);
- fl->name = NULL;
- }
+ return NULL;
}
int
-pl_register(char *name, pl_add_types_fptr add_types, pl_load_fptr load)
+pl_register(const char *name, pl_add_types_fptr add_types, pl_load_fptr load)
{
proto_loader_t *fl = pl_find(name);
if (fl) {
@@ -58,14 +51,21 @@ pl_register(char *name, pl_add_types_fpt
return -1; /* could not register proto_loader */
}
-proto_loader_t*
-pl_find(char *name)
+void
+pl_unregister(const char *name)
{
- if (!name)
- return NULL;
+ proto_loader_t *fl = pl_find(name);
+ if (fl) {
+ GDKfree(fl->name);
+ fl->name = NULL;
+ }
+}
+
+void
+pl_exit(void)
+{
for (int i = 0; i < NR_PROTO_LOADERS; i++) {
- if (proto_loaders[i].name && strcmp(proto_loaders[i].name,
name) == 0)
- return proto_loaders+i;
+ if (proto_loaders[i].name)
+ GDKfree(proto_loaders[i].name);
}
- return NULL;
}
diff --git a/sql/server/rel_proto_loader.h b/sql/server/rel_proto_loader.h
--- a/sql/server/rel_proto_loader.h
+++ b/sql/server/rel_proto_loader.h
@@ -17,8 +17,7 @@
#include "sql_mvc.h"
typedef str (*pl_add_types_fptr)(mvc *sql, sql_subfunc *f, char *url, list
*res_exps, char *name);
-typedef void *(*pl_load_fptr)(void *be, sql_subfunc *f, char *url, sql_exp
*topn); /* use void * as both return type and be
-
argument are unknown types at this layer */
+typedef void *(*pl_load_fptr)(void *be, sql_subfunc *f, char *url, sql_exp
*topn); /* use void * as both return type and be argument are unknown types at
this layer */
typedef struct proto_loader_t {
char *name;
@@ -26,10 +25,10 @@ typedef struct proto_loader_t {
pl_load_fptr load;
} proto_loader_t;
-sql_export int pl_register(char *name, pl_add_types_fptr add_types,
pl_load_fptr pl_load);
-sql_export void pl_unregister(char *name);
-extern proto_loader_t* pl_find(char *name);
+sql_export int pl_register(const char *name, pl_add_types_fptr add_types,
pl_load_fptr pl_load);
+sql_export void pl_unregister(const char *name);
+extern proto_loader_t* pl_find(const char *name);
extern void pl_exit(void);
#endif /*_REL_PROTO_LOADER_H_*/
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]