Fix stack corruption causing a crash on Windows with connection pooling

This commit is contained in:
Christopher Jones 2015-02-11 15:24:49 -08:00
parent 3ca2c765c4
commit fe0dd9701a
4 changed files with 11 additions and 4 deletions

View File

@ -23,6 +23,8 @@
*
*****************************************************************************/
#include "node.h"
#include "njsOracle.h"
#include "njsConnection.h"
#include "njsPool.h"
@ -53,6 +55,7 @@ Oracledb::Oracledb()
poolMin_ = POOL_MIN;
poolIncrement_ = POOL_INCR;
poolTimeout_ = POOL_TIMEOUT;
connClass_ = "";
}
/*****************************************************************************/

View File

@ -79,7 +79,7 @@ private:
// Create Pool Methods
static Handle<Value> CreatePool (const Arguments& args);
static void Async_CreatePool (uv_work_t *req );
static void Async_AfterCreatePool (uv_work_t *req );
static void Async_AfterCreatePool (uv_work_t *req);
// Define Getter Accessors to Properties
static Handle<Value> GetPoolMin(Local<String> property,

View File

@ -23,6 +23,10 @@
*
*****************************************************************************/
#include "node.h"
#include <string>
#include "njsOracle.h"
#include "njsPool.h"
#include "njsConnection.h"
@ -504,11 +508,12 @@ void Pool::Async_GetConnection(uv_work_t *req)
PARAMETERS:
UV queue work block
status - expected to be non-zero.
NOTES:
Connection handle is formed and handed over to JS.
*/
Handle<Value> Pool::Async_AfterGetConnection(uv_work_t *req)
void Pool::Async_AfterGetConnection(uv_work_t *req)
{
HandleScope scope;
connectionBaton *connBaton = (connectionBaton*)req->data;
@ -536,7 +541,6 @@ Handle<Value> Pool::Async_AfterGetConnection(uv_work_t *req)
node::FatalException(tc);
}
delete connBaton;
return Undefined();
}
/*****************************************************************************/

View File

@ -53,7 +53,7 @@ private:
// Get Connection Methods
static Handle<Value> GetConnection(const Arguments& args);
static void Async_GetConnection(uv_work_t* req);
static Handle<Value> Async_AfterGetConnection(uv_work_t* req);
static void Async_AfterGetConnection(uv_work_t* req);
// Terminate Methods
static Handle<Value> Terminate(const Arguments& args);