From 521216e0a696fa698c88fc1e18958c82626873cc Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 16 Jun 2015 08:19:25 +0200 Subject: Implement support for nested members in inverse pragma --- odb/validator.cxx | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'odb/validator.cxx') diff --git a/odb/validator.cxx b/odb/validator.cxx index 071da16..561d348 100644 --- a/odb/validator.cxx +++ b/odb/validator.cxx @@ -1192,8 +1192,8 @@ namespace // Inverse pointer must be deleted before the direct side. // - if (semantics::data_member* im = inverse (m)) - check_strict (m, *im, "inverse object pointer", "direct pointer"); + if (data_member_path* imp = inverse (m)) + check_strict (m, *imp, "inverse object pointer", "direct pointer"); } virtual void @@ -1209,8 +1209,8 @@ namespace // Inverse pointer must be deleted before the direct side. // - if (semantics::data_member* im = inverse (m, "value")) - check_strict (m, *im, "inverse object pointer", "direct pointer"); + if (data_member_path* imp = inverse (m, "value")) + check_strict (m, *imp, "inverse object pointer", "direct pointer"); } } @@ -1246,14 +1246,13 @@ namespace void check_strict (D& dep, P& pre, char const* dname, char const* pname) { - unsigned long long dv (deleted (dep)); - unsigned long long pv (deleted (pre)); + location_t dl, pl; + unsigned long long dv (deleted (dep, &dl)); + unsigned long long pv (deleted (pre, &pl)); if (pv == 0) // Prerequisite never deleted. return; - location_t pl (pre.template get ("deleted-location")); - if (dv == 0) // Dependent never deleted. { location dl (dep.location ()); @@ -1265,8 +1264,6 @@ namespace } else if (pv > dv) // Prerequisite deleted before dependent. { - location_t dl (dep.template get ("deleted-location")); - error (dl) << dname << " is deleted after " << pname << endl; info (pl) << pname << " deletion version is specified here" << endl; -- cgit v1.1