summaryrefslogtreecommitdiff
path: root/odb/relational/header.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/relational/header.cxx')
-rw-r--r--odb/relational/header.cxx10
1 files changed, 6 insertions, 4 deletions
diff --git a/odb/relational/header.cxx b/odb/relational/header.cxx
index 4b8b193..b64ab2a 100644
--- a/odb/relational/header.cxx
+++ b/odb/relational/header.cxx
@@ -12,9 +12,11 @@ traverse_object (type& c)
{
using semantics::data_member;
- data_member* id (id_member (c));
+ data_member_path* id (id_member (c));
+ data_member* idf (id ? id->front () : 0);
+ data_member* idb (id ? id->back () : 0);
bool auto_id (id && auto_ (*id));
- bool base_id (id && &id->scope () != &c); // Comes from base.
+ bool base_id (id && &idf->scope () != &c); // Comes from base.
data_member* opt (context::optimistic (c));
@@ -120,7 +122,7 @@ traverse_object (type& c)
else
{
semantics::class_& b (
- dynamic_cast<semantics::class_&> (id->scope ()));
+ dynamic_cast<semantics::class_&> (idf->scope ()));
os << "typedef object_traits_impl< " << class_fq_name (b) << ", " <<
"id_" << db << " >::id_image_type id_image_type;"
@@ -132,7 +134,7 @@ traverse_object (type& c)
os << "struct id_image_type"
<< "{";
- id_image_member_->traverse (*id);
+ id_image_member_->traverse (*idb);
if (opt != 0)
version_image_member_->traverse (*opt);