|
From: <asf...@us...> - 2013-05-23 15:53:09
|
Revision: 58102
http://sourceforge.net/p/firebird/code/58102
Author: asfernandes
Date: 2013-05-23 15:53:06 +0000 (Thu, 23 May 2013)
Log Message:
-----------
Make the master interface available in UDR.
Modified Paths:
--------------
firebird/trunk/examples/udr/UdrCppExample.cpp
firebird/trunk/src/include/firebird/UdrCppEngine.h
Modified: firebird/trunk/examples/udr/UdrCppExample.cpp
===================================================================
--- firebird/trunk/examples/udr/UdrCppExample.cpp 2013-05-23 11:55:18 UTC (rev 58101)
+++ firebird/trunk/examples/udr/UdrCppExample.cpp 2013-05-23 15:53:06 UTC (rev 58102)
@@ -111,9 +111,6 @@
}
-static IMaster* master = fb_get_master_interface();
-
-
//------------------------------------------------------------------------------
Modified: firebird/trunk/src/include/firebird/UdrCppEngine.h
===================================================================
--- firebird/trunk/src/include/firebird/UdrCppEngine.h 2013-05-23 11:55:18 UTC (rev 58101)
+++ firebird/trunk/src/include/firebird/UdrCppEngine.h 2013-05-23 15:53:06 UTC (rev 58102)
@@ -515,9 +515,10 @@
{
}
- void* operator new(size_t size, const IRoutineMetadata* metadata)
+ void* operator new(size_t size, IMaster* master, const IRoutineMetadata* metadata)
{
Function* p = reinterpret_cast<Function*>(::new char[size]);
+ p->master = master;
p->metadata = metadata;
return p;
}
@@ -528,6 +529,7 @@
}
public:
+ IMaster* master;
const IRoutineMetadata* metadata;
};
@@ -556,9 +558,10 @@
{
}
- void* operator new(size_t size, const IRoutineMetadata* metadata)
+ void* operator new(size_t size, IMaster* master, const IRoutineMetadata* metadata)
{
Procedure* p = reinterpret_cast<Procedure*>(::new char[size]);
+ p->master = master;
p->metadata = metadata;
return p;
}
@@ -569,6 +572,7 @@
}
public:
+ IMaster* master;
const IRoutineMetadata* metadata;
};
@@ -597,9 +601,10 @@
{
}
- void* operator new(size_t size, const IRoutineMetadata* metadata)
+ void* operator new(size_t size, IMaster* master, const IRoutineMetadata* metadata)
{
Trigger* p = reinterpret_cast<Trigger*>(::new char[size]);
+ p->master = master;
p->metadata = metadata;
return p;
}
@@ -610,6 +615,7 @@
}
public:
+ IMaster* master;
const IRoutineMetadata* metadata;
};
@@ -632,7 +638,7 @@
virtual ExternalFunction* FB_CARG newItem(IStatus* status, ExternalContext* context,
const IRoutineMetadata* metadata)
{
- T* obj = new(metadata) Routine<T>;
+ T* obj = new(context->getMaster(), metadata) Routine<T>;
obj->initialize(status, context);
return obj;
}
@@ -657,7 +663,7 @@
virtual ExternalProcedure* FB_CARG newItem(IStatus* status, ExternalContext* context,
const IRoutineMetadata* metadata)
{
- T* obj = new(metadata) Routine<T>;
+ T* obj = new(context->getMaster(), metadata) Routine<T>;
obj->initialize(status, context);
return obj;
}
@@ -681,7 +687,7 @@
virtual ExternalTrigger* FB_CARG newItem(IStatus* status, ExternalContext* context,
const IRoutineMetadata* metadata)
{
- T* obj = new(metadata) Routine<T>;
+ T* obj = new(context->getMaster(), metadata) Routine<T>;
obj->initialize(status, context);
return obj;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|