[Lldb-commits] [lldb] 3d4cadf - [lldb/Interpreter] Conform ScriptedProcessPythonInterface to SWIG python types
Med Ismail Bennani via lldb-commits
lldb-commits at lists.llvm.org
Thu Jul 22 13:48:31 PDT 2021
Author: Med Ismail Bennani
Date: 2021-07-22T22:48:15+02:00
New Revision: 3d4cadfb26437bd686ca8177f5454a366fed59eb
URL: https://github.com/llvm/llvm-project/commit/3d4cadfb26437bd686ca8177f5454a366fed59eb
DIFF: https://github.com/llvm/llvm-project/commit/3d4cadfb26437bd686ca8177f5454a366fed59eb.diff
LOG: [lldb/Interpreter] Conform ScriptedProcessPythonInterface to SWIG python types
This patch should address the compiler warnings due to mismatch type
comparaison.
Differential Revision: https://reviews.llvm.org/D105788
Signed-off-by: Med Ismail Bennani <medismail.bennani at gmail.com>
Added:
Modified:
lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp
lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h
Removed:
################################################################################
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp
index 51168f8095f84..ce262c930f8b7 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp
@@ -63,7 +63,13 @@ Status ScriptedProcessPythonInterface::Resume() {
}
bool ScriptedProcessPythonInterface::ShouldStop() {
- return GetGenericInteger("shuold_stop");
+ llvm::Optional<unsigned long long> should_stop =
+ GetGenericInteger("should_stop");
+
+ if (!should_stop)
+ return false;
+
+ return static_cast<bool>(*should_stop);
}
Status ScriptedProcessPythonInterface::Stop() {
@@ -134,21 +140,21 @@ Status ScriptedProcessPythonInterface::GetStatusFromMethod(
return Status("Returned object is null.");
}
-size_t
+llvm::Optional<unsigned long long>
ScriptedProcessPythonInterface::GetGenericInteger(llvm::StringRef method_name) {
Locker py_lock(&m_interpreter, Locker::AcquireLock | Locker::NoSTDIN,
Locker::FreeLock);
if (!m_object_instance_sp)
- return LLDB_INVALID_ADDRESS;
+ return llvm::None;
if (!m_object_instance_sp)
- return LLDB_INVALID_ADDRESS;
+ return llvm::None;
PythonObject implementor(PyRefType::Borrowed,
(PyObject *)m_object_instance_sp->GetValue());
if (!implementor.IsAllocated())
- return LLDB_INVALID_ADDRESS;
+ return llvm::None;
PythonObject pmeth(
PyRefType::Owned,
@@ -158,12 +164,12 @@ ScriptedProcessPythonInterface::GetGenericInteger(llvm::StringRef method_name) {
PyErr_Clear();
if (!pmeth.IsAllocated())
- return LLDB_INVALID_ADDRESS;
+ return llvm::None;
if (PyCallable_Check(pmeth.get()) == 0) {
if (PyErr_Occurred())
PyErr_Clear();
- return LLDB_INVALID_ADDRESS;
+ return llvm::None;
}
if (PyErr_Occurred())
@@ -179,11 +185,15 @@ ScriptedProcessPythonInterface::GetGenericInteger(llvm::StringRef method_name) {
PyErr_Clear();
}
- if (py_return.get()) {
- auto size = py_return.AsUnsignedLongLong();
- return (size) ? *size : LLDB_INVALID_ADDRESS;
- }
- return LLDB_INVALID_ADDRESS;
+ if (!py_return.get())
+ return llvm::None;
+
+ llvm::Expected<unsigned long long> size = py_return.AsUnsignedLongLong();
+ // FIXME: Handle error.
+ if (!size)
+ return llvm::None;
+
+ return *size;
}
lldb::MemoryRegionInfoSP
@@ -280,15 +290,17 @@ StructuredData::DictionarySP ScriptedProcessPythonInterface::GetLoadedImages() {
}
lldb::pid_t ScriptedProcessPythonInterface::GetProcessID() {
- size_t pid = GetGenericInteger("get_process_id");
-
- return (pid >= std::numeric_limits<lldb::pid_t>::max())
- ? LLDB_INVALID_PROCESS_ID
- : pid;
+ llvm::Optional<unsigned long long> pid = GetGenericInteger("get_process_id");
+ return (!pid) ? LLDB_INVALID_PROCESS_ID : *pid;
}
bool ScriptedProcessPythonInterface::IsAlive() {
- return GetGenericInteger("is_alive");
+ llvm::Optional<unsigned long long> is_alive = GetGenericInteger("is_alive");
+
+ if (!is_alive)
+ return false;
+
+ return static_cast<bool>(*is_alive);
}
#endif
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h
index 5d53462df6f2f..1b5f347b97182 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h
@@ -51,7 +51,7 @@ class ScriptedProcessPythonInterface : public ScriptedProcessInterface {
bool IsAlive() override;
protected:
- size_t GetGenericInteger(llvm::StringRef method_name);
+ llvm::Optional<uint64_t> GetGenericInteger(llvm::StringRef method_name);
Status GetStatusFromMethod(llvm::StringRef method_name);
private:
More information about the lldb-commits
mailing list