ModuleLoader::Module* ModuleLoader::loadModule(ISC_STATUS* status, const Firebird::PathName& modPath) { void* module = dlopen(modPath.nullStr(), FB_RTLD_MODE); if (module == NULL) { if (status) { status[0] = isc_arg_gds; status[1] = isc_random; status[2] = isc_arg_string; status[3] = (ISC_STATUS) dlerror(); status[4] = isc_arg_end; } return 0; } #ifdef DEBUG_THREAD_IN_UNLOADED_LIBRARY Firebird::string command; command.printf("echo +++ %s +++ >>/tmp/fbmaps;date >> /tmp/fbmaps;cat /proc/%d/maps >>/tmp/fbmaps", modPath.c_str(), getpid()); system(command.c_str()); #endif return FB_NEW_POOL(*getDefaultMemoryPool()) DlfcnModule(*getDefaultMemoryPool(), modPath, module); }
AggNode* LeadWinNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/ { return FB_NEW_POOL(dsqlScratch->getPool()) LeadWinNode(dsqlScratch->getPool(), doDsqlPass(dsqlScratch, arg), doDsqlPass(dsqlScratch, rows), doDsqlPass(dsqlScratch, outExpr)); }
ValueExprNode* NthValueWinNode::copy(thread_db* tdbb, NodeCopier& copier) const { NthValueWinNode* node = FB_NEW_POOL(*tdbb->getDefaultPool()) NthValueWinNode(*tdbb->getDefaultPool()); node->arg = copier.copy(tdbb, arg); node->row = copier.copy(tdbb, row); node->from = copier.copy(tdbb, from); return node; }
ValueExprNode* LeadWinNode::copy(thread_db* tdbb, NodeCopier& copier) const { LeadWinNode* node = FB_NEW_POOL(*tdbb->getDefaultPool()) LeadWinNode(*tdbb->getDefaultPool()); node->arg = copier.copy(tdbb, arg); node->rows = copier.copy(tdbb, rows); node->outExpr = copier.copy(tdbb, outExpr); return node; }
void PortsCleanup::registerPort(rem_port* port) { Firebird::MutexLockGuard guard(m_mutex, FB_FUNCTION); if (!m_ports) { Firebird::MemoryPool& pool = *getDefaultMemoryPool(); m_ports = FB_NEW_POOL (pool) PortsArray(pool); } m_ports->add(port); }
AggNode* NTileWinNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/ { NTileWinNode* node = FB_NEW_POOL(dsqlScratch->getPool()) NTileWinNode(dsqlScratch->getPool(), doDsqlPass(dsqlScratch, arg)); dsc argDesc; argDesc.makeInt64(0); PASS1_set_parameter_type(dsqlScratch, node->arg, &argDesc, false); return node; }
ModuleLoader::Module* ModuleLoader::loadModule(const Firebird::PathName& modPath) { void* module = dlopen(modPath.c_str(), FB_RTLD_MODE); if (module == NULL) { #ifdef DEBUG_LOADER fprintf(stderr, "load error: %s: %s\n", modPath.c_str(), dlerror()); #endif // DEBUG_LOADER return 0; } return FB_NEW_POOL(*getDefaultMemoryPool()) DlfcnModule(module); }
ModuleLoader::Module* ModuleLoader::loadModule(const Firebird::PathName& modPath) { void* module = dlopen(modPath.nullStr(), FB_RTLD_MODE); if (module == NULL) { #ifdef DEV_BUILD // gds__log("loadModule failed loading %s: %s", modPath.c_str(), dlerror()); #endif return 0; } #ifdef DEBUG_THREAD_IN_UNLOADED_LIBRARY Firebird::string command; command.printf("echo +++ %s +++ >>/tmp/fbmaps;date >> /tmp/fbmaps;cat /proc/%d/maps >>/tmp/fbmaps", modPath.c_str(), getpid()); system(command.c_str()); #endif return FB_NEW_POOL(*getDefaultMemoryPool()) DlfcnModule(module); }
AggNode* CumeDistWinNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/ { return FB_NEW_POOL(dsqlScratch->getPool()) CumeDistWinNode(dsqlScratch->getPool()); }
ValueExprNode* DenseRankWinNode::copy(thread_db* tdbb, NodeCopier& /*copier*/) const { return FB_NEW_POOL(*tdbb->getDefaultPool()) DenseRankWinNode(*tdbb->getDefaultPool()); }
AggNode* NthValueWinNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/ { return FB_NEW_POOL(dsqlScratch->getPool()) NthValueWinNode(dsqlScratch->getPool(), doDsqlPass(dsqlScratch, arg), doDsqlPass(dsqlScratch, row), doDsqlPass(dsqlScratch, from)); }
AggNode* LastValueWinNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/ { return FB_NEW_POOL(dsqlScratch->getPool()) LastValueWinNode(dsqlScratch->getPool(), doDsqlPass(dsqlScratch, arg)); }
AggNode* RowNumberWinNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/ { return FB_NEW_POOL(dsqlScratch->getPool()) RowNumberWinNode(dsqlScratch->getPool()); }
StatusVector::StatusVector(const ISC_STATUS* s) throw(Firebird::BadAlloc) : Base(FB_NEW_POOL(*getDefaultMemoryPool()) ImplStatusVector(s)) { }
StatusVector::StatusVector(const Exception& ex) throw(Firebird::BadAlloc) : Base(FB_NEW_POOL(*getDefaultMemoryPool()) ImplStatusVector(ex)) { }
StatusVector::StatusVector(ISC_STATUS k, ISC_STATUS c) throw(Firebird::BadAlloc) : Base(FB_NEW_POOL(*getDefaultMemoryPool()) ImplStatusVector(k, c)) { operator<<(*(static_cast<Base*>(this))); }
Base::Base(ISC_STATUS k, ISC_STATUS c) throw(Firebird::BadAlloc) : implementation(FB_NEW_POOL(*getDefaultMemoryPool()) ImplBase(k, c)) { }
StatusVector::StatusVector() throw(Firebird::BadAlloc) : Base(FB_NEW_POOL(*getDefaultMemoryPool()) ImplStatusVector(0, 0)) { }
ValueExprNode* NTileWinNode::copy(thread_db* tdbb, NodeCopier& copier) const { NTileWinNode* node = FB_NEW_POOL(*tdbb->getDefaultPool()) NTileWinNode(*tdbb->getDefaultPool()); node->arg = copier.copy(tdbb, arg); return node; }
ValueExprNode* RowNumberWinNode::copy(thread_db* tdbb, NodeCopier& /*copier*/) const { return FB_NEW_POOL(*tdbb->getDefaultPool()) RowNumberWinNode(*tdbb->getDefaultPool()); }
AggNode* DenseRankWinNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/ { return FB_NEW_POOL(dsqlScratch->getPool()) DenseRankWinNode(dsqlScratch->getPool()); }
void Config::setRootDirectoryFromCommandLine(const Firebird::PathName& newRoot) { delete rootFromCommandLine; rootFromCommandLine = FB_NEW_POOL(*getDefaultMemoryPool()) Firebird::PathName(*getDefaultMemoryPool(), newRoot); }