From dd404d6ec8cffe8d5593a189d8f9918e36b59470 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 10 Nov 2025 13:32:56 -0800 Subject: [PATCH 1/2] Try reusing to see what happens --- src/main/conversions.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/conversions.c b/src/main/conversions.c index 0360b70994..55809f7b55 100644 --- a/src/main/conversions.c +++ b/src/main/conversions.c @@ -2358,8 +2358,19 @@ void initialize_bin_for_strictypes(AerospikeClient *self, as_error *err, PyObject *py_value, as_binop *binop, char *bin, as_static_pool *static_pool) { - as_bin *binop_bin = &binop->bin; + as_status status = as_val_new_from_pyobject(self, err, py_value, + static_pool, SERIALIZER_PYTHON); + if (status != AEROSPIKE_OK) { + return; + } + + strcpy(binop_bin->name, bin); + // doesn't support boolean + // this allocates memory on the stack + // TODO... + return; + if (PyLong_Check(py_value)) { int val = PyLong_AsLong(py_value); as_integer_init((as_integer *)&binop_bin->value, val); @@ -2427,7 +2438,6 @@ void initialize_bin_for_strictypes(AerospikeClient *self, as_error *err, ((as_val *)&binop_bin->value)->type = AS_UNKNOWN; binop_bin->valuep = (as_bin_value *)bytes; } - strcpy(binop_bin->name, bin); } // TODO: dead code From c1edaaaf2895cf0c8e90dead6ac922e110c15670 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:19:20 -0800 Subject: [PATCH 2/2] Fix --- src/main/conversions.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/conversions.c b/src/main/conversions.c index 55809f7b55..b6172deeed 100644 --- a/src/main/conversions.c +++ b/src/main/conversions.c @@ -2360,6 +2360,7 @@ void initialize_bin_for_strictypes(AerospikeClient *self, as_error *err, { as_bin *binop_bin = &binop->bin; as_status status = as_val_new_from_pyobject(self, err, py_value, + (as_val **)(&binop_bin->valuep), static_pool, SERIALIZER_PYTHON); if (status != AEROSPIKE_OK) { return;