diff options
author | dominique.leuenberger <dominique.leuenberger@c587cffe-e639-0410-9787-d7902ae8ed56> | 2009-10-01 20:37:37 +0000 |
---|---|---|
committer | dominique.leuenberger <dominique.leuenberger@c587cffe-e639-0410-9787-d7902ae8ed56> | 2009-10-01 20:37:37 +0000 |
commit | ece8918dbf0097b524e7618418b6fb1592fb5fce (patch) | |
tree | 882054c282640b2ef5e8122281f6f14802ff31a9 | |
parent | 83acf0e16c9f709228623324d5c9601f9e65fb30 (diff) | |
download | libproxy-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.c | 4 | ||||
-rw-r--r-- | src/lib/module_manager.h | 21 |
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_ */ |