diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-08-26 12:13:18 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-08-28 14:15:45 +0200 |
commit | 64d0ceffaaf5f57a3d24a5210bf0ad2a8474a618 (patch) | |
tree | 98115a01b0bd2e9ddfdc6ff3a0f7470915de483a /odb/common.cxx | |
parent | 061a16256eef2c2df53e2e145d16f17270c2de82 (diff) |
Add wrapper support for composite values
NULL semantics for composite values is not yet supported.
Diffstat (limited to 'odb/common.cxx')
-rw-r--r-- | odb/common.cxx | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/odb/common.cxx b/odb/common.cxx index 130d5ec..794afc1 100644 --- a/odb/common.cxx +++ b/odb/common.cxx @@ -29,6 +29,14 @@ composite (semantics::data_member*, semantics::class_& c) } void object_members_base:: +composite_wrapper (semantics::data_member* m, + semantics::class_& c, + semantics::type*) +{ + composite (m, c); +} + +void object_members_base:: object (semantics::class_& c) { inherits (c); @@ -38,7 +46,7 @@ object (semantics::class_& c) void object_members_base:: traverse_composite (semantics::data_member& m, semantics::class_& c) { - composite (&m, c); + composite_wrapper (&m, c, 0); } void object_members_base:: @@ -88,7 +96,7 @@ traverse (semantics::class_& c) if (obj) object (c); else - composite (0, c); + composite_wrapper (0, c, 0); } if (obj) @@ -108,7 +116,7 @@ traverse (semantics::data_member& m) semantics::type& t (m.type ()); - if (semantics::class_* comp = context::comp_value (t)) + if (semantics::class_* comp = context::comp_value_wrapper (t)) { string old_prefix, old_table_prefix; @@ -153,7 +161,7 @@ traverse (semantics::data_member& m) om_.table_prefix_.level++; } - om_.composite (&m, *comp); + om_.composite_wrapper (&m, *comp, (wrapper (t) ? &t : 0)); if (om_.build_table_prefix_) { @@ -275,7 +283,7 @@ traverse (semantics::data_member& m) semantics::type& t (m.type ()); - if (semantics::class_* comp = comp_value (t)) + if (semantics::class_* comp = comp_value_wrapper (t)) { string old_prefix (prefix_); |