aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h')
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h21
1 files changed, 10 insertions, 11 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
index 1689680..ba127ea 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
@@ -360,15 +360,12 @@ public:
return !!r;
}
- llvm::Expected<long long> AsLongLong() {
- if (!m_py_obj)
- return nullDeref();
- assert(!PyErr_Occurred());
- long long r = PyLong_AsLongLong(m_py_obj);
- if (PyErr_Occurred())
- return exception();
- return r;
- }
+ llvm::Expected<long long> AsLongLong() const;
+
+ llvm::Expected<long long> AsUnsignedLongLong() const;
+
+ // wraps on overflow, instead of raising an error.
+ llvm::Expected<unsigned long long> AsModuloUnsignedLongLong() const;
llvm::Expected<bool> IsInstance(const PythonObject &cls) {
if (!m_py_obj || !cls.IsValid())
@@ -400,6 +397,10 @@ template <>
llvm::Expected<long long> As<long long>(llvm::Expected<PythonObject> &&obj);
template <>
+llvm::Expected<unsigned long long>
+As<unsigned long long>(llvm::Expected<PythonObject> &&obj);
+
+template <>
llvm::Expected<std::string> As<std::string>(llvm::Expected<PythonObject> &&obj);
@@ -491,8 +492,6 @@ public:
static bool Check(PyObject *py_obj);
static void Convert(PyRefType &type, PyObject *&py_obj);
- int64_t GetInteger() const;
-
void SetInteger(int64_t value);
StructuredData::IntegerSP CreateStructuredInteger() const;