From: <asf...@us...> - 2011-01-16 02:16:22
|
Revision: 52134 http://firebird.svn.sourceforge.net/firebird/?rev=52134&view=rev Author: asfernandes Date: 2011-01-16 02:16:15 +0000 (Sun, 16 Jan 2011) Log Message: ----------- Misc Modified Paths: -------------- firebird/trunk/builds/install/misc/firebird.conf.in firebird/trunk/doc/README.fb_shutdown firebird/trunk/src/common/ThreadStart.cpp firebird/trunk/src/common/classes/ImplementHelper.h firebird/trunk/src/common/config/config.cpp firebird/trunk/src/common/unicode_util.cpp firebird/trunk/src/include/ProviderInterface.h firebird/trunk/src/jrd/ExtEngineManager.cpp firebird/trunk/src/jrd/blb.cpp firebird/trunk/src/jrd/jrd.cpp firebird/trunk/src/jrd/tra.h firebird/trunk/src/jrd/trace/TraceManager.cpp firebird/trunk/src/jrd/trace/TraceManager.h firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp firebird/trunk/src/remote/client/interface.cpp firebird/trunk/src/remote/client/interface.h firebird/trunk/src/remote/remote.cpp firebird/trunk/src/utilities/ntrace/PluginLogWriter.h firebird/trunk/src/utilities/ntrace/TracePluginImpl.cpp firebird/trunk/src/yvalve/MasterImplementation.cpp firebird/trunk/src/yvalve/PluginManager.cpp Modified: firebird/trunk/builds/install/misc/firebird.conf.in =================================================================== --- firebird/trunk/builds/install/misc/firebird.conf.in 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/builds/install/misc/firebird.conf.in 2011-01-16 02:16:15 UTC (rev 52134) @@ -356,7 +356,7 @@ # # Type: string -# AuthServer and AuthClient determine what uthentication methods will be used +# AuthServer and AuthClient determine what authentication methods will be used # by network server and client redirector. For non-windows systems default # for both is Legacy_Auth. # Modified: firebird/trunk/doc/README.fb_shutdown =================================================================== --- firebird/trunk/doc/README.fb_shutdown 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/doc/README.fb_shutdown 2011-01-16 02:16:15 UTC (rev 52134) @@ -43,7 +43,7 @@ fb_shut_confirmation - callback function may return non-zero value to abort shutdown fb_shut_preproviders - callback function will be called before shutting down engine fb_shut_postproviders - callback function will be called after shutting down engine -fb_shut_finish - final step, callback function may wait for some activity to be treminated +fb_shut_finish - final step, callback function may wait for some activity to be terminated or ORed combination of them (to make same function be called in required cases). Callback function has 3 parameters - reason of shutdown, actual value of mask with which it was Modified: firebird/trunk/src/common/ThreadStart.cpp =================================================================== --- firebird/trunk/src/common/ThreadStart.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/common/ThreadStart.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -37,8 +37,6 @@ #include "../common/isc_s_proto.h" #include "../common/gdsassert.h" - - #ifdef WIN_NT #include <process.h> #include <windows.h> @@ -139,7 +137,6 @@ pthread_attr_t pattr; int state; - #if defined (LINUX) || defined (FREEBSD) if (state = pthread_create(&thread, NULL, THREAD_ENTRYPOINT, THREAD_ARG)) Firebird::system_call_failed::raise("pthread_create", state); Modified: firebird/trunk/src/common/classes/ImplementHelper.h =================================================================== --- firebird/trunk/src/common/classes/ImplementHelper.h 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/common/classes/ImplementHelper.h 2011-01-16 02:16:15 UTC (rev 52134) @@ -261,7 +261,7 @@ void getPlugin() { - currentPlugin = (P*)(pluginSet->plugin()); + currentPlugin = (P*) pluginSet->plugin(); } }; Modified: firebird/trunk/src/common/config/config.cpp =================================================================== --- firebird/trunk/src/common/config/config.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/common/config/config.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -662,7 +662,7 @@ const char* Config::getPlugins(unsigned int type) { - switch(type) + switch (type) { case Firebird::PluginType::Provider: return (const char*) getDefaultConfig()->values[KEY_PLUG_PROVIDERS]; Modified: firebird/trunk/src/common/unicode_util.cpp =================================================================== --- firebird/trunk/src/common/unicode_util.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/common/unicode_util.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -779,10 +779,8 @@ ObjectsArray<string> versions; getVersions(configInfo, versions); - if (!versions.getCount()) - { + if (versions.isEmpty()) gds__log("No versions"); - } string version = icuVersion.isEmpty() ? versions[0] : icuVersion; if (version == "default") Modified: firebird/trunk/src/include/ProviderInterface.h =================================================================== --- firebird/trunk/src/include/ProviderInterface.h 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/include/ProviderInterface.h 2011-01-16 02:16:15 UTC (rev 52134) @@ -67,9 +67,9 @@ virtual void FB_CARG getInfo(Firebird::Status* status, unsigned int itemsLength, const unsigned char* items, unsigned int bufferLength, unsigned char* buffer) = 0; - virtual unsigned int FB_CARG getSegment(Firebird::Status* status, unsigned int length, + virtual unsigned int FB_CARG getSegment(Firebird::Status* status, unsigned int length, unsigned char* buffer) = 0; // returns real length - virtual void FB_CARG putSegment(Firebird::Status* status, unsigned int length, + virtual void FB_CARG putSegment(Firebird::Status* status, unsigned int length, const unsigned char* buffer) = 0; virtual void FB_CARG cancel(Firebird::Status* status) = 0; virtual void FB_CARG close(Firebird::Status* status) = 0; Modified: firebird/trunk/src/jrd/ExtEngineManager.cpp =================================================================== --- firebird/trunk/src/jrd/ExtEngineManager.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/jrd/ExtEngineManager.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -659,7 +659,7 @@ but that module is not actually unloaded - because UDR module (libudrcpp_example.so) is using symbols from plugin module, therefore raising plugin module's reference count. UDR module can be unloaded only from plugin module's global variable (ModuleMap modules) dtor, -which is not called as long as plugin module is not inloaded. As the result all this will be +which is not called as long as plugin module is not unloaded. As the result all this will be unloaded only on program exit, causing at that moment AV if this code is active: it happens that ~ModuleMap dlcloses itself. Modified: firebird/trunk/src/jrd/blb.cpp =================================================================== --- firebird/trunk/src/jrd/blb.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/jrd/blb.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -2592,20 +2592,10 @@ } +// Release a blob and associated blocks. Among other things, disconnect it from the transaction. +// However, if purge_flag is false, then only release the associated blocks. void blb::destroy(blb* blob, const bool purge_flag) { -/************************************** - * - * r e l e a s e _ b l o b - * - ************************************** - * - * Functional description - * Release a blob and associated blocks. Among other things, - * disconnect it from the transaction. However, if purge_flag - * is false, then only release the associated blocks. - * - **************************************/ jrd_tra* const transaction = blob->blb_transaction; // Disconnect blob from transaction block. @@ -2646,7 +2636,7 @@ blob->blb_transaction->getBlobSpace()->releaseSpace(blob->blb_temp_offset, blob->blb_temp_size); } - --(blob->refCounter); + --blob->refCounter; delete blob; } Modified: firebird/trunk/src/jrd/jrd.cpp =================================================================== --- firebird/trunk/src/jrd/jrd.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/jrd/jrd.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -3725,7 +3725,8 @@ try { CounterGuard guard(shutCounter); -/* + + /*** if (unloading) { return; @@ -3738,7 +3739,8 @@ { return; } -*/ + ***/ + ThreadContextHolder tdbb; ULONG attach_count, database_count, svc_count; Modified: firebird/trunk/src/jrd/tra.h =================================================================== --- firebird/trunk/src/jrd/tra.h 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/jrd/tra.h 2011-01-16 02:16:15 UTC (rev 52134) @@ -194,11 +194,10 @@ { if (transaction) { - --(transaction->refCounter); + --transaction->refCounter; + if (!dbb || transaction->tra_outer) - { delete transaction; - } else { MemoryPool* const pool = transaction->tra_pool; Modified: firebird/trunk/src/jrd/trace/TraceManager.cpp =================================================================== --- firebird/trunk/src/jrd/trace/TraceManager.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/jrd/trace/TraceManager.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -53,6 +53,7 @@ virtual int FB_CARG noEvent() { static bool flagFirst = true; + if (flagFirst) { flagFirst = false; @@ -154,7 +155,7 @@ init_factories = true; for (PluginsSet<TraceFactory, IgnoreMissing> traceItr(PluginType::Trace, FB_TRACE_PLUGIN_VERSION); - traceItr.hasData(); traceItr.next()) + traceItr.hasData(); traceItr.next()) { FactoryInfo info; info.factory = traceItr.plugin(); @@ -241,7 +242,7 @@ } } - for (FactoryInfo* info = factories->begin(); info < factories->end(); ++info) + for (FactoryInfo* info = factories->begin(); info != factories->end(); ++info) { TraceInitInfoImpl attachInfo(session, attachment, filename); LocalStatus status; Modified: firebird/trunk/src/jrd/trace/TraceManager.h =================================================================== --- firebird/trunk/src/jrd/trace/TraceManager.h 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/jrd/trace/TraceManager.h 2011-01-16 02:16:15 UTC (rev 52134) @@ -150,21 +150,23 @@ TraceFactory* factory; char name[MAXPATHLEN]; }; + class Factories : public Firebird::Array<FactoryInfo> { public: Factories(Firebird::MemoryPool& p) : Firebird::Array<FactoryInfo>(p) { } + ~Factories() { Firebird::PluginInterface pi; + for (unsigned int i = 0; i < getCount(); ++i) - { pi->releasePlugin(getElement(i).factory); - } } }; + static Firebird::GlobalPtr<Factories> factories; static Firebird::GlobalPtr<Firebird::Mutex> init_factories_mtx; static volatile bool init_factories; Modified: firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp =================================================================== --- firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -90,13 +90,16 @@ { // this plugin is not ready to support different configurations // therefore keep legacy approach + IConfigParameter* icp = NULL; + for (int n = 0; (icp = defaultConfig->findPos("path", n)); ++n) { PathName newPath(icp->value()); icp->release(); bool found = false; + for (ObjectsArray<PathName>::iterator i = paths->begin(); i != paths->end(); ++i) { if (*i == newPath) @@ -779,7 +782,7 @@ //-------------------------------------- -/* +/*** class ExternalEngineFactoryImpl : public ExternalEngineFactory { public: @@ -796,7 +799,8 @@ error->addString(msg, strlen(msg)); return NULL; } - */ +***/ + class ExternalEngineFactoryImpl : public SimpleFactory<Engine> { } factory; @@ -807,7 +811,8 @@ Firebird::IPlugin* plugin = master->getPluginInterface(); plugin->registerPlugin(Firebird::PluginType::ExternalEngine, "UDR", &factory); plugin->release(); -/* + + /*** if (plugin->getLibraryName()) libraryName->assign(plugin->getLibraryName()); libraryModule = ModuleLoader::loadModule(libraryName); @@ -823,7 +828,7 @@ } plugin->setExternalEngineFactory(&factory); - */ + ***/ } Modified: firebird/trunk/src/remote/client/interface.cpp =================================================================== --- firebird/trunk/src/remote/client/interface.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/remote/client/interface.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -165,9 +165,8 @@ cancel(&status); } else - { delete this; - } + return 0; } @@ -209,10 +208,12 @@ public: Transaction(Rtr* handle) : transaction(handle) { } + Rtr* getTransaction() { return transaction; } + void clear() { transaction = NULL; @@ -226,9 +227,7 @@ int Transaction::release() { if (--refCounter != 0) - { return 1; - } if (transaction) { @@ -236,9 +235,7 @@ rollback(&status); } else - { delete this; - } return 0; } @@ -287,9 +284,7 @@ int Statement::release() { if (--refCounter != 0) - { return 1; - } if (statement) { @@ -297,9 +292,7 @@ free(&status, DSQL_drop); } else - { delete this; - } return 0; } @@ -331,9 +324,7 @@ int Request::release() { if (--refCounter != 0) - { return 1; - } if (rq) { @@ -341,9 +332,7 @@ free(&status); } else - { delete this; - } return 0; } @@ -364,9 +353,7 @@ int Events::release() { if (--refCounter != 0) - { return 1; - } if (rvnt) { @@ -374,9 +361,7 @@ cancel(&status); } else - { delete this; - } return 0; } @@ -410,6 +395,7 @@ public: Attachment(Rdb* handle) : rdb(handle) { } + Rdb* getRdb() { return rdb; @@ -422,9 +408,7 @@ int Attachment::release() { if (--refCounter != 0) - { return 1; - } if (rdb) { @@ -432,9 +416,7 @@ detach(&status); } else - { delete this; - } return 0; } @@ -461,9 +443,7 @@ int Service::release() { if (--refCounter != 0) - { return 1; - } if (rdb) { @@ -471,9 +451,7 @@ detach(&status); } else - { delete this; - } return 0; } @@ -502,6 +480,7 @@ delete this; return 0; } + return 1; } @@ -5667,7 +5646,7 @@ if (n && n->cstr_length && authItr.hasData()) { // if names match, do not change instance - if (strlen(authItr.name()) == n->cstr_length && + if (strlen(authItr.name()) == n->cstr_length && memcmp(authItr.name(), n->cstr_address, n->cstr_length) == 0) { n = NULL; Modified: firebird/trunk/src/remote/client/interface.h =================================================================== --- firebird/trunk/src/remote/client/interface.h 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/remote/client/interface.h 2011-01-16 02:16:15 UTC (rev 52134) @@ -28,7 +28,10 @@ #ifndef REMOTE_CLIENT_INTERFACE_H #define REMOTE_CLIENT_INTERFACE_H -namespace Remote { + +namespace Remote +{ void registerRedirector(Firebird::IPlugin* iPlugin); } + #endif // REMOTE_CLIENT_INTERFACE_H Modified: firebird/trunk/src/remote/remote.cpp =================================================================== --- firebird/trunk/src/remote/remote.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/remote/remote.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -845,7 +845,7 @@ if (!rsr_status) { rsr_status = new Firebird::StatusHolder(); } - + if (overwrite || !rsr_status->getError()) { ISC_STATUS_ARRAY temp; Modified: firebird/trunk/src/utilities/ntrace/PluginLogWriter.h =================================================================== --- firebird/trunk/src/utilities/ntrace/PluginLogWriter.h 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/utilities/ntrace/PluginLogWriter.h 2011-01-16 02:16:15 UTC (rev 52134) @@ -54,6 +54,7 @@ ~PluginLogWriter(); virtual size_t write(const void* buf, size_t size); + virtual int release() { if (--refCounter == 0) Modified: firebird/trunk/src/utilities/ntrace/TracePluginImpl.cpp =================================================================== --- firebird/trunk/src/utilities/ntrace/TracePluginImpl.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/utilities/ntrace/TracePluginImpl.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -2154,7 +2154,7 @@ { try { - log_event_service_query(service, send_item_length, send_items, + log_event_service_query(service, send_item_length, send_items, recv_item_length, recv_items, query_result); return true; } Modified: firebird/trunk/src/yvalve/MasterImplementation.cpp =================================================================== --- firebird/trunk/src/yvalve/MasterImplementation.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/yvalve/MasterImplementation.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -93,12 +93,12 @@ if (toUpgrade->version() >= desiredVersion) return; - CVirtualClass* target = (CVirtualClass*)toUpgrade; + CVirtualClass* target = (CVirtualClass*) toUpgrade; FunctionPtr* newTab = NULL; - if (!functionMap->get((U_IPTR)(target->vTab), newTab)) + if (!functionMap->get((U_IPTR) target->vTab, newTab)) { - CVirtualClass* miss = (CVirtualClass*)missingFunctionClass; + CVirtualClass* miss = (CVirtualClass*) missingFunctionClass; newTab = FB_NEW(*getDefaultMemoryPool()) FunctionPtr[desiredVersion]; for (int i = 0; i < toUpgrade->version(); ++i) @@ -106,7 +106,7 @@ for (int j = toUpgrade->version(); j < desiredVersion; ++j) newTab[j] = miss->vTab[0]; - functionMap->put((U_IPTR)(target->vTab), newTab); + functionMap->put((U_IPTR) target->vTab, newTab); } target->vTab = newTab; Modified: firebird/trunk/src/yvalve/PluginManager.cpp =================================================================== --- firebird/trunk/src/yvalve/PluginManager.cpp 2011-01-15 09:30:24 UTC (rev 52133) +++ firebird/trunk/src/yvalve/PluginManager.cpp 2011-01-16 02:16:15 UTC (rev 52134) @@ -142,12 +142,12 @@ if (--refCounter == 0) { if (cf) - { cf->release(); - } + delete this; return 0; } + return 1; } @@ -200,6 +200,7 @@ delete this; return 0; } + return 1; } @@ -213,6 +214,7 @@ addRef(); return new ConfigParameterAccess(this, p); } + return NULL; } }; @@ -220,9 +222,8 @@ IConfig* ConfigParameterAccess::sub() { if (par && par->sub.hasData()) - { return new ConfigAccess(par->sub); - } + return NULL; } @@ -231,6 +232,7 @@ RegisteredPlugin(PluginsFactory* f, const char* nm, unsigned int t) : factory(f), name(nm), type(t) { } + RegisteredPlugin() : factory(NULL), name(NULL), type(0) { } @@ -364,6 +366,7 @@ delete this; return 0; } + return 1; } @@ -495,6 +498,7 @@ delete this; return 0; } + return 1; } @@ -509,6 +513,7 @@ AutoPtr<IMaster, AutoInterface> masterInterface; RefPtr<PluginModule> loadModule(const PathName& modName); + void loadError(const Arg::StatusVector& error) { iscLogStatus("PluginSet", error.value()); @@ -576,7 +581,7 @@ RegisteredPlugin* r = m->findPlugin(interfaceType, regName); if (! r) { - gds__log("Misconfigured: module %s does not contain plugin %s type %d", + gds__log("Misconfigured: module %s does not contain plugin %s type %d", curModule.c_str(), regName.c_str(), interfaceType); continue; } @@ -586,7 +591,7 @@ currentPlugin = new ConfiguredPlugin(m, r, conf, plugConfigFile, currentName); currentPlugin->release(); // std interface is created with refCounter == 1 - // cause currentPlugin holds refernce itself, that 1 should be released() here + // cause currentPlugin holds reference itself, that 1 should be released() here plugins->put(MapKey(interfaceType, currentName), currentPlugin); return; @@ -698,6 +703,7 @@ MutexLockGuard g(plugins->mutex); Interface* parent = plugin->owner(NULL); + if (plugin->release() == 0) { fb_assert(parent); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |