From 5adda85ed10d9196f4d68cc4b8fee12f6ba9cfec Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 9 Dec 2010 10:36:15 +0200 Subject: Add lazy pointer support Built-in support is provided for raw, auto, and tr1 shared/weak pointers. New test: common/lazy-ptr. --- odb/context.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'odb/context.cxx') 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) -- cgit v1.1