aboutsummaryrefslogtreecommitdiff
path: root/odb/oracle/polymorphic-object-statements.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-06-18 09:32:10 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-06-18 09:32:10 +0200
commit1e341e5902b18fcf076a04eb4be164748d8761d8 (patch)
tree4e00803a7b370b9a14965bb7cac5fd2a04604634 /odb/oracle/polymorphic-object-statements.hxx
parent6f2dbb7c82c53591f9070ea336f9437f2392fd8f (diff)
Allocate container traits lazily and only when their definition is seen
This fixes a problem with polymorphic hierarchies spread over multiple files in which case the source code for the derived class does not have the definition of the container traits for the base class. See the comment in the source code for further details.
Diffstat (limited to 'odb/oracle/polymorphic-object-statements.hxx')
-rw-r--r--odb/oracle/polymorphic-object-statements.hxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/odb/oracle/polymorphic-object-statements.hxx b/odb/oracle/polymorphic-object-statements.hxx
index 0b8ddcb..dce30c3 100644
--- a/odb/oracle/polymorphic-object-statements.hxx
+++ b/odb/oracle/polymorphic-object-statements.hxx
@@ -338,7 +338,7 @@ namespace odb
container_statement_cache_type&
container_statment_cache ()
{
- return container_statement_cache_;
+ return container_statement_cache_.get (conn_);
}
public:
@@ -370,7 +370,8 @@ namespace odb
root_statements_type& root_statements_;
base_statements_type& base_statements_;
- container_statement_cache_type container_statement_cache_;
+ container_statement_cache_ptr<container_statement_cache_type>
+ container_statement_cache_;
image_type image_;