summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordominique.leuenberger <dominique.leuenberger@c587cffe-e639-0410-9787-d7902ae8ed56>2009-10-01 20:37:37 +0000
committerdominique.leuenberger <dominique.leuenberger@c587cffe-e639-0410-9787-d7902ae8ed56>2009-10-01 20:37:37 +0000
commitece8918dbf0097b524e7618418b6fb1592fb5fce (patch)
tree882054c282640b2ef5e8122281f6f14802ff31a9
parent83acf0e16c9f709228623324d5c9601f9e65fb30 (diff)
downloadlibproxy-ece8918dbf0097b524e7618418b6fb1592fb5fce.tar.gz
module_manager: define headers as external C and do not use 'new' where not appropriate (reserved keyword for C++)
git-svn-id: http://libproxy.googlecode.com/svn/trunk@439 c587cffe-e639-0410-9787-d7902ae8ed56
-rw-r--r--src/lib/module_manager.c4
-rw-r--r--src/lib/module_manager.h21
2 files changed, 17 insertions, 8 deletions
diff --git a/src/lib/module_manager.c b/src/lib/module_manager.c
index 76d625d..1cd572e 100644
--- a/src/lib/module_manager.c
+++ b/src/lib/module_manager.c
@@ -227,7 +227,7 @@ _px_module_manager_register_module_full(pxModuleManager *self,
pxModuleRegistration *reg = px_malloc0(sizeof(pxModuleRegistration));
reg->name = px_strndup(name, namelen);
- reg->new = new;
+ reg->pxnew = new;
reg->free = free;
// Create a new empty array if there is no registrations for this id
@@ -255,7 +255,7 @@ _px_module_manager_instantiate_type_full(pxModuleManager *self,
{
pxModuleRegistration *reg = (pxModuleRegistration *) px_array_get(regs, i);
if (!reg->instance)
- reg->instance = reg->new();
+ reg->instance = reg->pxnew();
}
// Sort the instances
diff --git a/src/lib/module_manager.h b/src/lib/module_manager.h
index 3e2d3be..269e763 100644
--- a/src/lib/module_manager.h
+++ b/src/lib/module_manager.h
@@ -23,6 +23,11 @@
#include <stdbool.h>
#include <assert.h>
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
/*
* Define the pxModuleManager object
*/
@@ -40,7 +45,7 @@ typedef void (*pxModuleFreeFunction)(pxModuleManager *);
struct _pxModuleRegistration {
char *name;
void *instance;
- pxModuleConstructor new;
+ pxModuleConstructor pxnew;
pxModuleDestructor free;
};
typedef struct _pxModuleRegistration pxModuleRegistration;
@@ -55,13 +60,13 @@ bool px_module_manager_load_dir (pxModuleManager *self, char *dirna
#define __str__(s) #s
#define __px_module_manager_get_id(type, version) #type "__" __str__(version)
-bool _px_module_manager_register_module_full(pxModuleManager *self, const char *id, const char *name, size_t namelen, pxModuleConstructor new, pxModuleDestructor free);
-#define px_module_manager_register_module(self, type, new, free) \
+bool _px_module_manager_register_module_full(pxModuleManager *self, const char *id, const char *name, size_t namelen, pxModuleConstructor pxnew, pxModuleDestructor free);
+#define px_module_manager_register_module(self, type, pxnew, free) \
_px_module_manager_register_module_full(self, __px_module_manager_get_id(type, type ## Version), \
__FILE__, strrchr(__FILE__, '.') ? strrchr(__FILE__, '.') - __FILE__ : strlen(__FILE__), \
- new, free)
-#define px_module_manager_register_module_with_name(self, type, name, new, free) \
- _px_module_manager_register_module_full(self, __px_module_manager_get_id(type, type ## Version), name, strlen(name), new, free)
+ pxnew, free)
+#define px_module_manager_register_module_with_name(self, type, name, pxnew, free) \
+ _px_module_manager_register_module_full(self, __px_module_manager_get_id(type, type ## Version), name, strlen(name), pxnew, free)
void **_px_module_manager_instantiate_type_full(pxModuleManager *self, const char *id);
#define px_module_manager_instantiate_type(self, type) \
@@ -73,4 +78,8 @@ bool _px_module_manager_register_type_full(pxModuleManager *self, const char *
#define PX_MODULE_SUBCLASS(type) type __parent__
+#ifdef __cplusplus
+}
+#endif
+
#endif /* MODULE_MANAGER_H_ */