aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/python/eager
diff options
context:
space:
mode:
authorGravatar Alexandre Passos <apassos@google.com>2018-09-13 14:17:30 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-09-13 14:22:22 -0700
commit885cd2942ae7b6239146a3f51ec3d6948ac2b89e (patch)
treed650d90403d94c2eefe85a20f32a822f1732af86 /tensorflow/python/eager
parent304faf0444260912b6996d39227417c09561c37e (diff)
No segfault in GradientTape with partially unknown shapes.
PiperOrigin-RevId: 212876876
Diffstat (limited to 'tensorflow/python/eager')
-rw-r--r--tensorflow/python/eager/pywrap_tfe_src.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/tensorflow/python/eager/pywrap_tfe_src.cc b/tensorflow/python/eager/pywrap_tfe_src.cc
index 1a8f3577b2..9f2f4e06ad 100644
--- a/tensorflow/python/eager/pywrap_tfe_src.cc
+++ b/tensorflow/python/eager/pywrap_tfe_src.cc
@@ -1403,9 +1403,13 @@ class PyVSpace
PyObject* arglist =
Py_BuildValue("(O)", reinterpret_cast<PyObject*>(tensor));
PyObject* result = PyEval_CallObject(num_elements_, arglist);
+ Py_DECREF(arglist);
+ if (result == nullptr) {
+ // The caller detects whether a python exception has been raised.
+ return -1;
+ }
tensorflow::int64 r = MakeInt(result);
Py_DECREF(result);
- Py_DECREF(arglist);
return r;
}