diff options
Diffstat (limited to 'odb/context.cxx')
-rw-r--r-- | odb/context.cxx | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/odb/context.cxx b/odb/context.cxx index ec8dec9..b606734 100644 --- a/odb/context.cxx +++ b/odb/context.cxx @@ -490,19 +490,24 @@ namespace bool context:: is_a (semantics::data_member& m, unsigned short f, - semantics::type&, + semantics::type& t, string const& kp) { bool r (false); if (f & test_pointer) { - r = r || object_pointer (m, kp); + r = r || object_pointer (t); } if (f & test_eager_pointer) { - r = r || object_pointer (m, kp); + r = r || (object_pointer (t) && !lazy_pointer (t)); + } + + if (f & test_lazy_pointer) + { + r = r || (object_pointer (t) && lazy_pointer (t)); } if (f & test_container) |