forked from OSchip/llvm-project
[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:
parent
9dbc4b09af
commit
3d4cadfb26
|
@ -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
|
||||
|
|
|
@ -51,7 +51,7 @@ public:
|
|||
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:
|
||||
|
|
Loading…
Reference in New Issue