summaryrefslogtreecommitdiff
path: root/odb/context.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/context.cxx')
-rw-r--r--odb/context.cxx11
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)