mirror of
https://github.com/vale981/ray
synced 2025-03-06 10:31:39 -05:00
fix bug in which bools were being serialized as ints by serializing bools before serializing ints (#80)
This commit is contained in:
parent
ebf18f99a8
commit
0aa1fa097e
1 changed files with 9 additions and 8 deletions
|
@ -187,7 +187,15 @@ void TaskCapsule_Destructor(PyObject* capsule) {
|
||||||
// FIXME(pcm): This currently only works for contiguous arrays
|
// FIXME(pcm): This currently only works for contiguous arrays
|
||||||
// This method will push all of the object references contained in `obj` to the `objrefs` vector.
|
// This method will push all of the object references contained in `obj` to the `objrefs` vector.
|
||||||
int serialize(PyObject* worker_capsule, PyObject* val, Obj* obj, std::vector<ObjRef> &objrefs) {
|
int serialize(PyObject* worker_capsule, PyObject* val, Obj* obj, std::vector<ObjRef> &objrefs) {
|
||||||
if (PyInt_Check(val)) {
|
if (PyBool_Check(val)) {
|
||||||
|
// The bool case must precede the int case because PyInt_Check passes for bools
|
||||||
|
Bool* data = obj->mutable_bool_data();
|
||||||
|
if (val == Py_False) {
|
||||||
|
data->set_data(false);
|
||||||
|
} else {
|
||||||
|
data->set_data(true);
|
||||||
|
}
|
||||||
|
} else if (PyInt_Check(val)) {
|
||||||
Int* data = obj->mutable_int_data();
|
Int* data = obj->mutable_int_data();
|
||||||
long d = PyInt_AsLong(val);
|
long d = PyInt_AsLong(val);
|
||||||
data->set_data(d);
|
data->set_data(d);
|
||||||
|
@ -195,13 +203,6 @@ int serialize(PyObject* worker_capsule, PyObject* val, Obj* obj, std::vector<Obj
|
||||||
Double* data = obj->mutable_double_data();
|
Double* data = obj->mutable_double_data();
|
||||||
double d = PyFloat_AsDouble(val);
|
double d = PyFloat_AsDouble(val);
|
||||||
data->set_data(d);
|
data->set_data(d);
|
||||||
} else if (PyBool_Check(val)) {
|
|
||||||
Bool* data = obj->mutable_bool_data();
|
|
||||||
if (val == Py_False) {
|
|
||||||
data->set_data(false);
|
|
||||||
} else {
|
|
||||||
data->set_data(true);
|
|
||||||
}
|
|
||||||
} else if (PyTuple_Check(val)) {
|
} else if (PyTuple_Check(val)) {
|
||||||
Tuple* data = obj->mutable_tuple_data();
|
Tuple* data = obj->mutable_tuple_data();
|
||||||
for (size_t i = 0, size = PyTuple_Size(val); i < size; ++i) {
|
for (size_t i = 0, size = PyTuple_Size(val); i < size; ++i) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue