aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-02-13 16:20:30 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-02-13 16:20:30 +0200
commit2ce43a501d37b63821e6d718f6260608df809214 (patch)
tree50e89a59f9a8695951b1e43f392aed2d8140bff1 /xsde/cxx
parentc7c32255956fc8c82200cd01e08951a336e48d98 (diff)
Add check for anonymous type
An element is not polymorphic if its type is anonymous.
Diffstat (limited to 'xsde/cxx')
-rw-r--r--xsde/cxx/parser/parser-inline.cxx5
-rw-r--r--xsde/cxx/serializer/serializer-inline.cxx5
2 files changed, 8 insertions, 2 deletions
diff --git a/xsde/cxx/parser/parser-inline.cxx b/xsde/cxx/parser/parser-inline.cxx
index fe582f9..774dc8d 100644
--- a/xsde/cxx/parser/parser-inline.cxx
+++ b/xsde/cxx/parser/parser-inline.cxx
@@ -385,7 +385,10 @@ namespace CXX
traverse (SemanticGraph::Element& e)
{
if (poly_)
- os << "this->" << emember_map (e) << " = &" << ename (e) << ";";
+ {
+ if (!anonymous (e.type ()))
+ os << "this->" << emember_map (e) << " = &" << ename (e) << ";";
+ }
else
os << "this->" << emember (e) << " = &" << ename (e) << ";";
}
diff --git a/xsde/cxx/serializer/serializer-inline.cxx b/xsde/cxx/serializer/serializer-inline.cxx
index 63dad21..d2481a2 100644
--- a/xsde/cxx/serializer/serializer-inline.cxx
+++ b/xsde/cxx/serializer/serializer-inline.cxx
@@ -374,7 +374,10 @@ namespace CXX
traverse (SemanticGraph::Element& e)
{
if (poly_)
- os << "this->" << emember_map (e) << " = &" << ename (e) << ";";
+ {
+ if (!anonymous (e.type ()))
+ os << "this->" << emember_map (e) << " = &" << ename (e) << ";";
+ }
else
os << "this->" << emember (e) << " = &" << ename (e) << ";";
}