aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/hybrid/extraction-source.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xsde/cxx/hybrid/extraction-source.cxx')
-rw-r--r--xsde/cxx/hybrid/extraction-source.cxx27
1 files changed, 23 insertions, 4 deletions
diff --git a/xsde/cxx/hybrid/extraction-source.cxx b/xsde/cxx/hybrid/extraction-source.cxx
index 44af7e0..5945ce3 100644
--- a/xsde/cxx/hybrid/extraction-source.cxx
+++ b/xsde/cxx/hybrid/extraction-source.cxx
@@ -24,7 +24,13 @@ namespace CXX
virtual Void
traverse (Type& l)
{
- String name (ename (l));
+ String const& name (ename_custom (l));
+
+ // We may not need to generate the class if this type is
+ // being customized.
+ //
+ if (!name)
+ return;
for (Streams::ConstIterator i (istreams.begin ());
i != istreams.end (); ++i)
@@ -56,7 +62,14 @@ namespace CXX
virtual Void
traverse (Type& u)
{
- String name (ename (u));
+ String const& name (ename_custom (u));
+
+ // We may not need to generate the class if this type is
+ // being customized.
+ //
+ if (!name)
+ return;
+
String const& value (u.context ().get<String> ("value"));
for (Streams::ConstIterator i (istreams.begin ());
@@ -930,9 +943,15 @@ namespace CXX
virtual Void
traverse (Type& c)
{
- Boolean restriction (restriction_p (c));
+ String const& name (ename_custom (c));
+
+ // We may not need to generate the class if this type is
+ // being customized.
+ //
+ if (!name)
+ return;
- String name (ename (c));
+ Boolean restriction (restriction_p (c));
for (Streams::ConstIterator i (istreams.begin ());
i != istreams.end (); ++i)