summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/FormatManager.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-11-04 03:34:56 +0000
committerGreg Clayton <gclayton@apple.com>2011-11-04 03:34:56 +0000
commitdce502ede0f35762ae0fb3f895c659e4fe912bf9 (patch)
tree3a4b178f9d846db4c2e084ea055f6c77278acd60 /lldb/source/Core/FormatManager.cpp
parent96e0c101fe2ccbce93947c89253921b1ddcb391d (diff)
downloadbcm5719-llvm-dce502ede0f35762ae0fb3f895c659e4fe912bf9.tar.gz
bcm5719-llvm-dce502ede0f35762ae0fb3f895c659e4fe912bf9.zip
Fixed the Xcode project building of LLVM to be a bit more user friendly:
- If you download and build the sources in the Xcode project, x86_64 builds by default using the "llvm.zip" checkpointed LLVM. - If you delete the "lldb/llvm.zip" and the "lldb/llvm" folder, and build the Xcode project will download the right LLVM sources and build them from scratch - If you have a "lldb/llvm" folder already that contains a "lldb/llvm/lib" directory, we will use the sources you have placed in the LLDB directory. Python can now be disabled for platforms that don't support it. Changed the way the libllvmclang.a files get used. They now all get built into arch specific directories and never get merged into universal binaries as this was causing issues where you would have to go and delete the file if you wanted to build an extra architecture slice. llvm-svn: 143678
Diffstat (limited to 'lldb/source/Core/FormatManager.cpp')
-rw-r--r--lldb/source/Core/FormatManager.cpp69
1 files changed, 45 insertions, 24 deletions
diff --git a/lldb/source/Core/FormatManager.cpp b/lldb/source/Core/FormatManager.cpp
index 58ca76d420a..b1cc6e8a1f2 100644
--- a/lldb/source/Core/FormatManager.cpp
+++ b/lldb/source/Core/FormatManager.cpp
@@ -163,8 +163,10 @@ FormatCategory::FormatCategory(IFormatChangeListener* clist,
m_regex_summary_nav(new RegexSummaryNavigator("regex-summary",clist)),
m_filter_nav(new FilterNavigator("filter",clist)),
m_regex_filter_nav(new RegexFilterNavigator("regex-filter",clist)),
+#ifndef LLDB_DISABLE_PYTHON
m_synth_nav(new SynthNavigator("synth",clist)),
m_regex_synth_nav(new RegexSynthNavigator("regex-synth",clist)),
+#endif
m_enabled(false),
m_change_listener(clist),
m_mutex(Mutex::eMutexTypeRecursive),
@@ -189,59 +191,67 @@ FormatCategory::Get (ValueObject& valobj,
bool
FormatCategory::Get(ValueObject& valobj,
- lldb::SyntheticChildrenSP& entry,
+ lldb::SyntheticChildrenSP& entry_sp,
lldb::DynamicValueType use_dynamic,
uint32_t* reason)
{
if (!IsEnabled())
return false;
- SyntheticFilter::SharedPointer filter;
- SyntheticScriptProvider::SharedPointer synth;
- bool regex_filter, regex_synth;
- uint32_t reason_filter;
- uint32_t reason_synth;
-
- bool pick_synth = false;
-
+ SyntheticFilter::SharedPointer filter_sp;
+ uint32_t reason_filter = 0;
+ bool regex_filter = false;
// first find both Filter and Synth, and then check which is most recent
- if (!GetFilterNavigator()->Get(valobj, filter, use_dynamic, &reason_filter))
- regex_filter = GetRegexFilterNavigator()->Get(valobj, filter, use_dynamic, &reason_filter);
-
+ if (!GetFilterNavigator()->Get(valobj, filter_sp, use_dynamic, &reason_filter))
+ regex_filter = GetRegexFilterNavigator()->Get (valobj, filter_sp, use_dynamic, &reason_filter);
+
+#ifndef LLDB_DISABLE_PYTHON
+ bool regex_synth = false;
+ uint32_t reason_synth = 0;
+ bool pick_synth = false;
+ SyntheticScriptProvider::SharedPointer synth;
if (!GetSyntheticNavigator()->Get(valobj, synth, use_dynamic, &reason_synth))
- regex_synth = GetRegexSyntheticNavigator()->Get(valobj, synth, use_dynamic, &reason_synth);
-
- if (!filter.get() && !synth.get())
+ regex_synth = GetRegexSyntheticNavigator()->Get (valobj, synth, use_dynamic, &reason_synth);
+ if (!filter_sp.get() && !synth.get())
return false;
-
- else if (!filter.get() && synth.get())
+ else if (!filter_sp.get() && synth.get())
pick_synth = true;
- else if (filter.get() && !synth.get())
+ else if (filter_sp.get() && !synth.get())
pick_synth = false;
- else /*if (filter.get() && synth.get())*/
+ else /*if (filter_sp.get() && synth.get())*/
{
- if (filter->m_my_revision > synth->m_my_revision)
+ if (filter_sp->m_my_revision > synth->m_my_revision)
pick_synth = false;
else
pick_synth = true;
}
-
if (pick_synth)
{
if (regex_synth && reason)
*reason |= lldb_private::eFormatterChoiceCriterionRegularExpressionFilter;
- entry = synth;
+ entry_sp = synth;
return true;
}
else
{
if (regex_filter && reason)
*reason |= lldb_private::eFormatterChoiceCriterionRegularExpressionFilter;
- entry = filter;
+ entry_sp = filter_sp;
return true;
}
+
+#else
+ if (filter_sp)
+ {
+ entry_sp = filter_sp;
+ return true;
+ }
+#endif
+
+ return false;
+
}
void
@@ -255,10 +265,12 @@ FormatCategory::Clear (FormatCategoryItems items)
m_filter_nav->Clear();
if ( (items & eFormatCategoryItemRegexFilter) == eFormatCategoryItemRegexFilter )
m_regex_filter_nav->Clear();
+#ifndef LLDB_DISABLE_PYTHON
if ( (items & eFormatCategoryItemSynth) == eFormatCategoryItemSynth )
m_synth_nav->Clear();
if ( (items & eFormatCategoryItemRegexSynth) == eFormatCategoryItemRegexSynth )
m_regex_synth_nav->Clear();
+#endif
}
bool
@@ -274,10 +286,12 @@ FormatCategory::Delete (ConstString name,
success = m_filter_nav->Delete(name) || success;
if ( (items & eFormatCategoryItemRegexFilter) == eFormatCategoryItemRegexFilter )
success = m_regex_filter_nav->Delete(name) || success;
+#ifndef LLDB_DISABLE_PYTHON
if ( (items & eFormatCategoryItemSynth) == eFormatCategoryItemSynth )
success = m_synth_nav->Delete(name) || success;
if ( (items & eFormatCategoryItemRegexSynth) == eFormatCategoryItemRegexSynth )
success = m_regex_synth_nav->Delete(name) || success;
+#endif
return success;
}
@@ -293,10 +307,12 @@ FormatCategory::GetCount (FormatCategoryItems items)
count += m_filter_nav->GetCount();
if ( (items & eFormatCategoryItemRegexFilter) == eFormatCategoryItemRegexFilter )
count += m_regex_filter_nav->GetCount();
+#ifndef LLDB_DISABLE_PYTHON
if ( (items & eFormatCategoryItemSynth) == eFormatCategoryItemSynth )
count += m_synth_nav->GetCount();
if ( (items & eFormatCategoryItemRegexSynth) == eFormatCategoryItemRegexSynth )
count += m_regex_synth_nav->GetCount();
+#endif
return count;
}
@@ -312,7 +328,9 @@ FormatCategory::AnyMatches(ConstString type_name,
lldb::SummaryFormatSP summary;
SyntheticFilter::SharedPointer filter;
+#ifndef LLDB_DISABLE_PYTHON
SyntheticScriptProvider::SharedPointer synth;
+#endif
if ( (items & eFormatCategoryItemSummary) == eFormatCategoryItemSummary )
{
@@ -358,6 +376,7 @@ FormatCategory::AnyMatches(ConstString type_name,
return true;
}
}
+#ifndef LLDB_DISABLE_PYTHON
if ( (items & eFormatCategoryItemSynth) == eFormatCategoryItemSynth )
{
if (m_synth_nav->Get(type_name, synth))
@@ -380,6 +399,7 @@ FormatCategory::AnyMatches(ConstString type_name,
return true;
}
}
+#endif
return false;
}
@@ -597,6 +617,7 @@ FormatManager::FormatManager() :
gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::basic_string<char,std::char_traits<char>,std::allocator<char> >"),
std_string_summary_sp);
+#ifndef LLDB_DISABLE_PYTHON
gnu_category_sp->GetRegexSyntheticNavigator()->Add(RegularExpressionSP(new RegularExpression("^(std::)?vector<.+>$")),
SyntheticChildrenSP(new SyntheticScriptProvider(true,
false,
@@ -612,7 +633,7 @@ FormatManager::FormatManager() :
false,
false,
"gnu_libstdcpp.StdListSynthProvider")));
-
+#endif
// DO NOT change the order of these calls, unless you WANT a change in the priority of these categories
EnableCategory(m_system_category_name);
EnableCategory(m_gnu_cpp_category_name);
OpenPOWER on IntegriCloud