[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@gmail.com>
This commit is contained in:
Med Ismail Bennani committed 2021-07-22 22:48:15 +02:00
1 parent 9dbc4b09af
commit 3d4cadfb26
2 files changed
+31 -19

No files matched your search

@@ -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