summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2011-08-30 15:22:44 -0400
committerNat Goodspeed <nat@lindenlab.com>2011-08-30 15:22:44 -0400
commit71aec7439c1a8027880ac06d99f923ab8fa7111b (patch)
tree8fcd820379296a81e694cb5cbe628a78f34bfb6f /indra/llui
parent713aa42f61d6d5791b26f56a73bd7cf7abb76f0d (diff)
CHOP-763: Introduce static LLView::getPathname(LLView*).
Use it for LLWindowListener to safely report an LLView* which might be NULL.
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llview.cpp27
-rw-r--r--indra/llui/llview.h2
2 files changed, 18 insertions, 11 deletions
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 0c8e3bace4..77abb1c6bf 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -433,20 +433,15 @@ BOOL LLView::isInEnabledChain() const
static void buildPathname(std::ostream& out, const LLView* view)
{
- if (view == 0) return;
-
- if (view->getParent() != 0)
+ if (! (view && view->getParent()))
{
- buildPathname(out, view->getParent());
-
- // Build pathname into ostream on the way back from recursion.
- out << '/' << view->getName();
- }
- else
- {
- ; // Don't include root in the path.
+ return; // Don't include root in the path.
}
+ buildPathname(out, view->getParent());
+
+ // Build pathname into ostream on the way back from recursion.
+ out << '/' << view->getName();
}
std::string LLView::getPathname() const
@@ -456,6 +451,16 @@ std::string LLView::getPathname() const
return out.str();
}
+//static
+std::string LLView::getPathname(const LLView* view)
+{
+ if (! view)
+ {
+ return "NULL";
+ }
+ return view->getPathname();
+}
+
// virtual
BOOL LLView::canFocusChildren() const
{
diff --git a/indra/llui/llview.h b/indra/llui/llview.h
index 11f25bcd7f..97151c4fb4 100644
--- a/indra/llui/llview.h
+++ b/indra/llui/llview.h
@@ -445,6 +445,8 @@ public:
virtual void onMouseLeave(S32 x, S32 y, MASK mask);
std::string getPathname() const;
+ // static method handles NULL pointer too
+ static std::string getPathname(const LLView*);
template <class T> T* findChild(const std::string& name, BOOL recurse = TRUE) const
{