[Lldb-commits] [lldb] r116641 - in /lldb/trunk: include/lldb/Target/UnixSignals.h source/Target/UnixSignals.cpp

Greg Clayton gclayton at apple.com
Fri Oct 15 16:16:40 PDT 2010


Author: gclayton
Date: Fri Oct 15 18:16:40 2010
New Revision: 116641

URL: http://llvm.org/viewvc/llvm-project?rev=116641&view=rev
Log:
Fixed the UnixSignals class to be able to get a signal by name, short name, or signal number when using:

	int32_t UnixSignals::GetSignalNumberFromName (const char *name) const;

Modified:
    lldb/trunk/include/lldb/Target/UnixSignals.h
    lldb/trunk/source/Target/UnixSignals.cpp

Modified: lldb/trunk/include/lldb/Target/UnixSignals.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/UnixSignals.h?rev=116641&r1=116640&r2=116641&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/UnixSignals.h (original)
+++ lldb/trunk/include/lldb/Target/UnixSignals.h Fri Oct 15 18:16:40 2010
@@ -130,14 +130,6 @@
         ~Signal () {}
     };
 
-    Signal *
-    GetSignalByName (const char *name,
-                     int32_t &signo);
-
-    const Signal *
-    GetSignalByName (const char *name,
-                     int32_t &signo) const;
-
     void
     Reset ();
 

Modified: lldb/trunk/source/Target/UnixSignals.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/UnixSignals.cpp?rev=116641&r1=116640&r2=116641&view=diff
==============================================================================
--- lldb/trunk/source/Target/UnixSignals.cpp (original)
+++ lldb/trunk/source/Target/UnixSignals.cpp Fri Oct 15 18:16:40 2010
@@ -13,6 +13,7 @@
 // C++ Includes
 // Other libraries and framework includes
 // Project includes
+#include "lldb/Interpreter/Args.h"
 
 using namespace lldb_private;
 
@@ -117,41 +118,6 @@
         m_signals.erase (pos);
 }
 
-UnixSignals::Signal *
-UnixSignals::GetSignalByName (const char *name, int32_t &signo)
-{
-    ConstString const_name (name);
-
-    collection::iterator pos, end = m_signals.end ();
-    for (pos = m_signals.begin (); pos != end; pos++)
-    {
-        if ((const_name == pos->second.m_name) || (const_name == pos->second.m_short_name))
-        {
-            signo = pos->first;
-            return &pos->second;
-        }
-    }
-    return NULL;
-}
-
-
-const UnixSignals::Signal *
-UnixSignals::GetSignalByName (const char *name, int32_t &signo) const
-{
-    ConstString const_name (name);
-
-    collection::const_iterator pos, end = m_signals.end ();
-    for (pos = m_signals.begin (); pos != end; pos++)
-    {
-        if (const_name == pos->second.m_name)
-        {
-            signo = pos->first;
-            return &(pos->second);
-        }
-    }
-    return NULL;
-}
-
 const char *
 UnixSignals::GetSignalAsCString (int signo) const
 {
@@ -173,12 +139,19 @@
 int32_t
 UnixSignals::GetSignalNumberFromName (const char *name) const
 {
-    int32_t signo;
-    const Signal *signal = GetSignalByName (name, signo);
-    if (signal == NULL)
-        return LLDB_INVALID_SIGNAL_NUMBER;
-    else
+    ConstString const_name (name);
+
+    collection::const_iterator pos, end = m_signals.end ();
+    for (pos = m_signals.begin (); pos != end; pos++)
+    {
+        if ((const_name == pos->second.m_name) || (const_name == pos->second.m_short_name))
+            return pos->first;
+    }
+    
+    const int32_t signo = Args::StringToSInt32(name, LLDB_INVALID_SIGNAL_NUMBER, 0);
+    if (signo != LLDB_INVALID_SIGNAL_NUMBER)
         return signo;
+    return LLDB_INVALID_SIGNAL_NUMBER;
 }
 
 int32_t
@@ -253,7 +226,10 @@
 bool
 UnixSignals::SetShouldSuppress (const char *signal_name, bool value)
 {
-    return SetShouldSuppress (GetSignalNumberFromName (signal_name), value);
+    const int32_t signo = GetSignalNumberFromName (signal_name);
+    if (signo != LLDB_INVALID_SIGNAL_NUMBER)
+        return SetShouldSuppress (signo, value);
+    return false;
 }
 
 bool
@@ -280,7 +256,10 @@
 bool
 UnixSignals::SetShouldStop (const char *signal_name, bool value)
 {
-    return SetShouldStop (GetSignalNumberFromName (signal_name), value);
+    const int32_t signo = GetSignalNumberFromName (signal_name);
+    if (signo != LLDB_INVALID_SIGNAL_NUMBER)
+        return SetShouldStop (signo, value);
+    return false;
 }
 
 bool
@@ -307,6 +286,8 @@
 bool
 UnixSignals::SetShouldNotify (const char *signal_name, bool value)
 {
-    return SetShouldNotify (GetSignalNumberFromName (signal_name), value);
+    const int32_t signo = GetSignalNumberFromName (signal_name);
+    if (signo != LLDB_INVALID_SIGNAL_NUMBER)
+        return SetShouldNotify (signo, value);
+    return false;
 }
-





More information about the lldb-commits mailing list