Older versions of Python 2.7 don't have PyMem_Calloc() so use PyMem_Malloc()
and memset() instead for Python 2.7.
This commit is contained in:
parent
02d336c5e9
commit
22642e2826
@ -415,8 +415,21 @@ static int cxoConnectionParams_processShardingKey(cxoConnectionParams *params,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
// allocate memory for the sharding key values
|
// allocate memory for the sharding key values
|
||||||
|
#if PY_MAJOR_VERSION >= 3
|
||||||
columns = PyMem_Calloc(numColumns, sizeof(dpiShardingKeyColumn));
|
columns = PyMem_Calloc(numColumns, sizeof(dpiShardingKeyColumn));
|
||||||
buffers = PyMem_Calloc(numColumns, sizeof(cxoBuffer));
|
buffers = PyMem_Calloc(numColumns, sizeof(cxoBuffer));
|
||||||
|
#else
|
||||||
|
columns = PyMem_Malloc(numColumns * sizeof(dpiShardingKeyColumn));
|
||||||
|
buffers = PyMem_Malloc(numColumns * sizeof(cxoBuffer));
|
||||||
|
#endif
|
||||||
|
if (!columns || !buffers) {
|
||||||
|
PyErr_NoMemory();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#if PY_MAJOR_VERSION < 3
|
||||||
|
memset(columns, 0, numColumns * sizeof(dpiShardingKeyColumn));
|
||||||
|
memset(buffers, 0, numColumns * sizeof(cxoBuffer));
|
||||||
|
#endif
|
||||||
if (isSuperShardingKey) {
|
if (isSuperShardingKey) {
|
||||||
params->superShardingKeyColumns = columns;
|
params->superShardingKeyColumns = columns;
|
||||||
params->superShardingKeyBuffers = buffers;
|
params->superShardingKeyBuffers = buffers;
|
||||||
@ -426,10 +439,6 @@ static int cxoConnectionParams_processShardingKey(cxoConnectionParams *params,
|
|||||||
params->shardingKeyBuffers = buffers;
|
params->shardingKeyBuffers = buffers;
|
||||||
params->numShardingKeyColumns = numColumns;
|
params->numShardingKeyColumns = numColumns;
|
||||||
}
|
}
|
||||||
if (!columns || !buffers) {
|
|
||||||
PyErr_NoMemory();
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// process each value
|
// process each value
|
||||||
for (i = 0; i < numColumns; i++) {
|
for (i = 0; i < numColumns; i++) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user