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;
|
||||
|
||||
// allocate memory for the sharding key values
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
columns = PyMem_Calloc(numColumns, sizeof(dpiShardingKeyColumn));
|
||||
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) {
|
||||
params->superShardingKeyColumns = columns;
|
||||
params->superShardingKeyBuffers = buffers;
|
||||
@ -426,10 +439,6 @@ static int cxoConnectionParams_processShardingKey(cxoConnectionParams *params,
|
||||
params->shardingKeyBuffers = buffers;
|
||||
params->numShardingKeyColumns = numColumns;
|
||||
}
|
||||
if (!columns || !buffers) {
|
||||
PyErr_NoMemory();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// process each value
|
||||
for (i = 0; i < numColumns; i++) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user