diff options
217 files changed, 339 insertions, 348 deletions
@@ -1,4 +1,4 @@ -Copyright (c) 2009-2020 Code Synthesis Tools CC. +Copyright (c) 2009-2024 Code Synthesis Tools CC. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as diff --git a/Makefile.am b/Makefile.am index a76cd6f..e44eb5c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,4 @@ # file : Makefile.am -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file SUBDIRS = __path__(dirs) @@ -1,7 +1,6 @@ #! /bin/sh # file : bootstrap -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file # diff --git a/build/bootstrap.build b/build/bootstrap.build index 783341d..9c8d1a9 100644 --- a/build/bootstrap.build +++ b/build/bootstrap.build @@ -1,5 +1,4 @@ # file : build/bootstrap.build -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file project = libodb diff --git a/build/bootstrap.make b/build/bootstrap.make index d87cf18..f26a5dc 100644 --- a/build/bootstrap.make +++ b/build/bootstrap.make @@ -1,5 +1,4 @@ # file : build/bootstrap.make -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file project_name := libodb diff --git a/build/configuration-rules.make b/build/configuration-rules.make index 895ac81..adfaf3c 100644 --- a/build/configuration-rules.make +++ b/build/configuration-rules.make @@ -1,5 +1,4 @@ # file : build/configuration-rules.make -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file $(dcf_root)/configuration-dynamic.make: | $(dcf_root)/. diff --git a/build/configuration.make b/build/configuration.make index 39ab11a..7a00b14 100644 --- a/build/configuration.make +++ b/build/configuration.make @@ -1,5 +1,4 @@ # file : build/configuration.make -# copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file $(call include-once,$(scf_root)/configuration-rules.make,$(dcf_root)) diff --git a/build/configure b/build/configure index 977bc3a..0109cb2 100755 --- a/build/configure +++ b/build/configure @@ -1,7 +1,6 @@ #! /usr/bin/env bash # file : build/configure -# copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file # $1 out file diff --git a/build/export.build b/build/export.build index 59d866f..56312c8 100644 --- a/build/export.build +++ b/build/export.build @@ -1,5 +1,4 @@ # file : build/export.build -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file $out_root/ diff --git a/build/export/libodb/stub.make b/build/export/libodb/stub.make index d3a2bf3..10eeb22 100644 --- a/build/export/libodb/stub.make +++ b/build/export/libodb/stub.make @@ -1,5 +1,4 @@ # file : build/export/libodb/stub.make -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file $(call include-once,$(src_root)/odb/makefile,$(out_root)) diff --git a/build/import/libodb/configuration-rules.make b/build/import/libodb/configuration-rules.make index 872cbb3..340c418 100644 --- a/build/import/libodb/configuration-rules.make +++ b/build/import/libodb/configuration-rules.make @@ -1,5 +1,4 @@ # file : build/import/libodb/configuration-rules.make -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file $(dcf_root)/import/libodb/configuration-dynamic.make: | $(dcf_root)/import/libodb/. diff --git a/build/import/libodb/configure b/build/import/libodb/configure index 0d57a5f..261a202 100755 --- a/build/import/libodb/configure +++ b/build/import/libodb/configure @@ -1,7 +1,6 @@ #! /usr/bin/env bash # file : build/import/libodb/configure -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file diff --git a/build/import/libodb/stub.make b/build/import/libodb/stub.make index 6b7088d..04dc786 100644 --- a/build/import/libodb/stub.make +++ b/build/import/libodb/stub.make @@ -1,5 +1,4 @@ # file : build/import/libodb/stub.make -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file $(call include-once,$(scf_root)/import/libodb/configuration-rules.make,$(dcf_root)) diff --git a/build/root.build b/build/root.build index 653ded7..882047d 100644 --- a/build/root.build +++ b/build/root.build @@ -1,5 +1,4 @@ # file : build/root.build -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file cxx.std = latest @@ -1,8 +1,7 @@ # file : buildfile -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file -./: {*/ -build/ -m4/} doc{GPLv2 INSTALL LICENSE NEWS README} manifest +./: {*/ -build/ -m4/} doc{INSTALL NEWS README} legal{GPLv2 LICENSE} manifest # Don't install tests or the INSTALL file. # diff --git a/configure.ac b/configure.ac index 7a644cd..e368d3b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,4 @@ # file : configure.ac -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file AC_PREREQ(2.60) diff --git a/libodb.pc.in b/libodb.pc.in index 91d6e22..05978d6 100644 --- a/libodb.pc.in +++ b/libodb.pc.in @@ -1,5 +1,4 @@ # file : libodb.pc.in -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file prefix=@prefix@ diff --git a/m4/disable-rpath.m4 b/m4/disable-rpath.m4 index 7874d4b..0864209 100644 --- a/m4/disable-rpath.m4 +++ b/m4/disable-rpath.m4 @@ -1,5 +1,4 @@ dnl file : m4/disable-rpath.m4 -dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC dnl license : GNU GPL v2; see accompanying LICENSE file dnl AC_DEFUN([DISABLE_RPATH],[ diff --git a/m4/libodb.m4 b/m4/libodb.m4 index 5f140bd..0dba7c4 100644 --- a/m4/libodb.m4 +++ b/m4/libodb.m4 @@ -1,5 +1,4 @@ dnl file : m4/libodb.m4 -dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC dnl license : GNU GPL v2; see accompanying LICENSE file dnl dnl LIBODB([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) diff --git a/m4/libtool-link.m4 b/m4/libtool-link.m4 index 635793f..302639f 100644 --- a/m4/libtool-link.m4 +++ b/m4/libtool-link.m4 @@ -1,5 +1,4 @@ dnl file : m4/libtool-link.m4 -dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC dnl license : GNU GPL v2; see accompanying LICENSE file dnl dnl diff --git a/m4/pkgconfig.m4 b/m4/pkgconfig.m4 index d5aa2d0..c48ea56 100644 --- a/m4/pkgconfig.m4 +++ b/m4/pkgconfig.m4 @@ -1,5 +1,4 @@ dnl file : m4/pkgconfig.m4 -dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC dnl license : GNU GPL v2; see accompanying LICENSE file dnl AC_DEFUN([PKGCONFIG],[ diff --git a/m4/static-lib.m4 b/m4/static-lib.m4 index 79b89cd..5fb1c11 100644 --- a/m4/static-lib.m4 +++ b/m4/static-lib.m4 @@ -1,5 +1,4 @@ dnl file : m4/static-lib.m4 -dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC dnl license : GNU GPL v2; see accompanying LICENSE file dnl dnl STATIC_LIB(MACRO, DESCRIPTION) diff --git a/m4/threads.m4 b/m4/threads.m4 index 10bdfdd..6f2e25f 100644 --- a/m4/threads.m4 +++ b/m4/threads.m4 @@ -1,5 +1,4 @@ dnl file : m4/threads.m4 -dnl copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC dnl license : GNU GPL v2; see accompanying LICENSE file dnl AC_DEFUN([THREADS],[ @@ -1,5 +1,4 @@ # file : makefile -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file include $(dir $(lastword $(MAKEFILE_LIST)))build/bootstrap.make @@ -13,12 +12,12 @@ clean := $(out_base)/.clean $(default): $(addprefix $(out_base)/,$(addsuffix /,$(dirs))) $(dist): export dirs := $(dirs) -$(dist): export docs := GPLv2 LICENSE README NEWS version +$(dist): export docs := GPLv2 LICENSE README NEWS version.txt $(dist): data_dist := INSTALL libodb-vc8.sln libodb-vc9.sln libodb-vc10.sln \ libodb-vc11.sln libodb-vc12.sln $(dist): exec_dist := bootstrap $(dist): export extra_dist := $(data_dist) $(exec_dist) -$(dist): export version = $(shell cat $(src_root)/version) +$(dist): export version = $(shell cat $(src_root)/version.txt) $(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(dirs))) $(call dist-data,$(docs) $(data_dist) libodb.pc.in) @@ -1,10 +1,10 @@ : 1 name: libodb -version: 2.5.0-b.18.z +version: 2.5.0-b.26.z project: odb summary: Common ODB runtime library -license: GPLv2 -license: proprietary +license: GPL-2.0-only +license: other: proprietary ; Not free/open source. topics: C++, ORM, SQL, object persistence, relational database description-file: README changes-file: NEWS @@ -12,8 +12,8 @@ url: https://www.codesynthesis.com/products/odb/ doc-url: https://www.codesynthesis.com/products/odb/doc/manual.xhtml src-url: https://git.codesynthesis.com/cgit/odb/libodb/ email: odb-users@codesynthesis.com -build-email: odb-builds@codesynthesis.com +build-warning-email: odb-builds@codesynthesis.com builds: all requires: c++11 -depends: * build2 >= 0.12.0 -depends: * bpkg >= 0.12.0 +depends: * build2 >= 0.16.0- +depends: * bpkg >= 0.16.0- diff --git a/odb/Makefile.am b/odb/Makefile.am index b45951a..af5141c 100644 --- a/odb/Makefile.am +++ b/odb/Makefile.am @@ -1,5 +1,4 @@ # file : odb/Makefile.am -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file lib_LTLIBRARIES = libodb.la diff --git a/odb/buildfile b/odb/buildfile index 5eb0866..ec95e94 100644 --- a/odb/buildfile +++ b/odb/buildfile @@ -1,5 +1,4 @@ # file : odb/buildfile -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file lib{odb}: {hxx ixx txx cxx}{* -version-build2} \ diff --git a/odb/c-array-traits.hxx b/odb/c-array-traits.hxx index 44d5bb9..fff7880 100644 --- a/odb/c-array-traits.hxx +++ b/odb/c-array-traits.hxx @@ -1,5 +1,4 @@ // file : odb/c-array-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_C_ARRAY_TRAITS_HXX diff --git a/odb/cache-traits.hxx b/odb/cache-traits.hxx index 0ac7bca..a8cf750 100644 --- a/odb/cache-traits.hxx +++ b/odb/cache-traits.hxx @@ -1,5 +1,4 @@ // file : odb/cache-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_CACHE_TRAITS_HXX diff --git a/odb/callback.hxx b/odb/callback.hxx index 5379ccc..aaa066f 100644 --- a/odb/callback.hxx +++ b/odb/callback.hxx @@ -1,5 +1,4 @@ // file : odb/callback.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_CALLBACK_HXX diff --git a/odb/connection.cxx b/odb/connection.cxx index e21b3ac..29743a2 100644 --- a/odb/connection.cxx +++ b/odb/connection.cxx @@ -1,5 +1,4 @@ // file : odb/connection.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/database.hxx> diff --git a/odb/connection.hxx b/odb/connection.hxx index 38d6533..8ce4544 100644 --- a/odb/connection.hxx +++ b/odb/connection.hxx @@ -1,5 +1,4 @@ // file : odb/connection.hxx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_CONNECTION_HXX @@ -90,11 +89,11 @@ namespace odb template <typename T> prepared_query<T> - lookup_query (const char* name) const; + lookup_query (const char* name); template <typename T, typename P> prepared_query<T> - lookup_query (const char* name, P*& params) const; + lookup_query (const char* name, P*& params); // SQL statement tracing. // @@ -200,8 +199,9 @@ namespace odb friend class prepared_query_impl; prepared_query_impl* prepared_queries_; - protected: - friend class transaction; + // Implementation details. + // + public: tracer_type* transaction_tracer_; }; diff --git a/odb/connection.ixx b/odb/connection.ixx index 5a95176..d19390a 100644 --- a/odb/connection.ixx +++ b/odb/connection.ixx @@ -1,5 +1,4 @@ // file : odb/connection.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <cstring> // std::string @@ -90,14 +89,14 @@ namespace odb template <typename T> inline prepared_query<T> connection:: - lookup_query (const char* name) const + lookup_query (const char* name) { return prepared_query<T> (lookup_query_ (name, typeid (T), 0, 0)); } template <typename T, typename P> inline prepared_query<T> connection:: - lookup_query (const char* name, P*& params) const + lookup_query (const char* name, P*& params) { return prepared_query<T> ( lookup_query_ (name, diff --git a/odb/connection.txx b/odb/connection.txx index a68beee..a082f14 100644 --- a/odb/connection.txx +++ b/odb/connection.txx @@ -1,5 +1,4 @@ // file : odb/connection.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/container-traits.hxx b/odb/container-traits.hxx index ea3b0d3..e2f44ce 100644 --- a/odb/container-traits.hxx +++ b/odb/container-traits.hxx @@ -1,5 +1,4 @@ // file : odb/container-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_CONTAINER_TRAITS_HXX diff --git a/odb/core.hxx b/odb/core.hxx index 9cfffd9..bca295d 100644 --- a/odb/core.hxx +++ b/odb/core.hxx @@ -1,5 +1,4 @@ // file : odb/core.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_CORE_HXX diff --git a/odb/database.cxx b/odb/database.cxx index f9e1043..9e098c7 100644 --- a/odb/database.cxx +++ b/odb/database.cxx @@ -1,5 +1,4 @@ // file : odb/database.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/database.hxx> @@ -20,7 +19,7 @@ namespace odb unsigned long long database:: execute (const char* st, std::size_t n) { - connection_type& c (transaction::current ().connection ()); + connection_type& c (transaction::current ().connection (*this)); return c.execute (st, n); } diff --git a/odb/database.hxx b/odb/database.hxx index 1440cea..e18e8ee 100644 --- a/odb/database.hxx +++ b/odb/database.hxx @@ -1,5 +1,4 @@ // file : odb/database.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DATABASE_HXX @@ -49,6 +48,8 @@ namespace odb #ifdef ODB_CXX11 //database (database&&) = default; // VC 2013 + // Note: noexcept is not specified since *_map_ (std::map) can throw. + // database (database&& d) : id_ (d.id_), tracer_ (d.tracer_), @@ -378,11 +379,11 @@ namespace odb template <typename T> prepared_query<T> - lookup_query (const char* name) const; + lookup_query (const char* name); template <typename T, typename P> prepared_query<T> - lookup_query (const char* name, P*& params) const; + lookup_query (const char* name, P*& params); // Prepared query factory. // diff --git a/odb/database.ixx b/odb/database.ixx index fa16f71..c3cf2e2 100644 --- a/odb/database.ixx +++ b/odb/database.ixx @@ -1,5 +1,4 @@ // file : odb/database.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <cstring> // std::strlen() @@ -675,7 +674,7 @@ namespace odb inline prepared_query<T> database:: prepare_query (const char* n, const odb::query<T>& q) { - connection_type& c (transaction::current ().connection ()); + connection_type& c (transaction::current ().connection (*this)); return c.prepare_query (n, q); } @@ -683,7 +682,7 @@ namespace odb inline void database:: cache_query (const prepared_query<T>& pq) { - connection_type& c (transaction::current ().connection ()); + connection_type& c (transaction::current ().connection (*this)); c.cache_query (pq); } @@ -692,7 +691,7 @@ namespace odb inline void database:: cache_query (const prepared_query<T>& pq, std::unique_ptr<P> params) { - connection_type& c (transaction::current ().connection ()); + connection_type& c (transaction::current ().connection (*this)); c.cache_query (pq, std::move (params)); } #else @@ -700,24 +699,24 @@ namespace odb inline void database:: cache_query (const prepared_query<T>& pq, std::auto_ptr<P> params) { - connection_type& c (transaction::current ().connection ()); + connection_type& c (transaction::current ().connection (*this)); c.cache_query (pq, params); } #endif template <typename T> inline prepared_query<T> database:: - lookup_query (const char* name) const + lookup_query (const char* name) { - connection_type& c (transaction::current ().connection ()); + connection_type& c (transaction::current ().connection (*this)); return c.lookup_query<T> (name); } template <typename T, typename P> inline prepared_query<T> database:: - lookup_query (const char* name, P*& params) const + lookup_query (const char* name, P*& params) { - connection_type& c (transaction::current ().connection ()); + connection_type& c (transaction::current ().connection (*this)); return c.lookup_query<T, P> (name, params); } diff --git a/odb/database.txx b/odb/database.txx index dc8f318..5659b6f 100644 --- a/odb/database.txx +++ b/odb/database.txx @@ -1,5 +1,4 @@ // file : odb/database.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/section.hxx> @@ -256,7 +255,7 @@ namespace odb void database:: load_ (T& obj, section& s) { - connection_type& c (transaction::current ().connection ()); + connection_type& c (transaction::current ().connection (*this)); // T is always object_type. // @@ -350,7 +349,7 @@ namespace odb // T is always object_type. // - if (object_traits_impl<T, DB>::update (t.connection (), obj, s)) + if (object_traits_impl<T, DB>::update (t.connection (*this), obj, s)) { if (s.changed ()) s.reset (true, false, &t); // Clear the change flag. diff --git a/odb/details/buffer.cxx b/odb/details/buffer.cxx index aabd546..595329e 100644 --- a/odb/details/buffer.cxx +++ b/odb/details/buffer.cxx @@ -1,5 +1,4 @@ // file : odb/details/buffer.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <cstring> // std::memcpy diff --git a/odb/details/buffer.hxx b/odb/details/buffer.hxx index aec6d42..558be9b 100644 --- a/odb/details/buffer.hxx +++ b/odb/details/buffer.hxx @@ -1,5 +1,4 @@ // file : odb/details/buffer.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_BUFFER_DETAILS_HXX @@ -65,6 +64,22 @@ namespace odb { return static_cast<T*> (data_); } + + // Note that strictly speaking the return type should be void* const* + // but that would make using this function too awkward since we often + // store the result as void*. + // + void** + data_ptr () + { + return &data_; + } + + const void* const* + data_ptr () const + { + return &data_; + } }; typedef basic_buffer<char> buffer; diff --git a/odb/details/build2/config-stub.h b/odb/details/build2/config-stub.h index 34847bb..83ea927 100644 --- a/odb/details/build2/config-stub.h +++ b/odb/details/build2/config-stub.h @@ -1,5 +1,4 @@ /* file : odb/details/build2/config-stub.h - * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ diff --git a/odb/details/build2/config-vc-stub.h b/odb/details/build2/config-vc-stub.h index 183879f..e440e70 100644 --- a/odb/details/build2/config-vc-stub.h +++ b/odb/details/build2/config-vc-stub.h @@ -1,5 +1,4 @@ /* file : odb/details/build2/config-vc-stub.h - * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ diff --git a/odb/details/build2/config-vc.h b/odb/details/build2/config-vc.h index 91eba7c..77ce106 100644 --- a/odb/details/build2/config-vc.h +++ b/odb/details/build2/config-vc.h @@ -1,5 +1,4 @@ /* file : odb/details/build2/config-vc.h - * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ diff --git a/odb/details/build2/config.h b/odb/details/build2/config.h index 8577a6e..ba434f4 100644 --- a/odb/details/build2/config.h +++ b/odb/details/build2/config.h @@ -1,5 +1,4 @@ /* file : odb/details/build2/config.h - * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ diff --git a/odb/details/c-string.hxx b/odb/details/c-string.hxx index d41c022..6ab1adc 100644 --- a/odb/details/c-string.hxx +++ b/odb/details/c-string.hxx @@ -1,5 +1,4 @@ // file : odb/details/c-string.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_C_STRING_HXX diff --git a/odb/details/condition.cxx b/odb/details/condition.cxx index 4bc16c2..2c4cbdb 100644 --- a/odb/details/condition.cxx +++ b/odb/details/condition.cxx @@ -1,5 +1,4 @@ // file : odb/details/condition.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/condition.hxx> diff --git a/odb/details/condition.hxx b/odb/details/condition.hxx index 22ee11e..10b6b4a 100644 --- a/odb/details/condition.hxx +++ b/odb/details/condition.hxx @@ -1,5 +1,4 @@ // file : odb/details/condition.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_CONDITION_HXX diff --git a/odb/details/config-vc.h b/odb/details/config-vc.h index a7ddbac..b1e38b2 100644 --- a/odb/details/config-vc.h +++ b/odb/details/config-vc.h @@ -1,5 +1,4 @@ /* file : odb/details/config-vc.h - * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ diff --git a/odb/details/config.h.in b/odb/details/config.h.in index 048c122..2396606 100644 --- a/odb/details/config.h.in +++ b/odb/details/config.h.in @@ -1,5 +1,4 @@ /* file : odb/details/config.h.in - * copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ diff --git a/odb/details/config.hxx b/odb/details/config.hxx index 2e11521..a42dd69 100644 --- a/odb/details/config.hxx +++ b/odb/details/config.hxx @@ -1,5 +1,4 @@ // file : odb/details/config.hxx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_CONFIG_HXX diff --git a/odb/details/exception.hxx b/odb/details/exception.hxx index 221d442..ab838e1 100644 --- a/odb/details/exception.hxx +++ b/odb/details/exception.hxx @@ -1,5 +1,4 @@ // file : odb/details/exception.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_EXCEPTION_HXX diff --git a/odb/details/export.hxx b/odb/details/export.hxx index 7939122..80fe342 100644 --- a/odb/details/export.hxx +++ b/odb/details/export.hxx @@ -1,5 +1,4 @@ // file : odb/details/export.hxx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_EXPORT_HXX diff --git a/odb/details/function-wrapper.hxx b/odb/details/function-wrapper.hxx index 165df18..418a625 100644 --- a/odb/details/function-wrapper.hxx +++ b/odb/details/function-wrapper.hxx @@ -1,5 +1,4 @@ // file : odb/details/function-wrapper.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_FUNCTION_WRAPPER_HXX diff --git a/odb/details/function-wrapper.ixx b/odb/details/function-wrapper.ixx index 9ec19ec..5b83b96 100644 --- a/odb/details/function-wrapper.ixx +++ b/odb/details/function-wrapper.ixx @@ -1,5 +1,4 @@ // file : odb/details/function-wrapper.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/details/function-wrapper.txx b/odb/details/function-wrapper.txx index 0ece244..db73e8d 100644 --- a/odb/details/function-wrapper.txx +++ b/odb/details/function-wrapper.txx @@ -1,5 +1,4 @@ // file : odb/details/function-wrapper.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <utility> // std::swap, std::move @@ -68,7 +67,10 @@ namespace odb } else { - function = reinterpret_cast<F*> (&caller_impl<F>::function); + function_wrapper<decltype (caller_impl<F>::function)> fw ( + &caller_impl<F>::function); + + function = fw.template cast<F*> (); deleter = &deleter_impl<F>; std_function = new std_function_type (std::move (sf)); } diff --git a/odb/details/lock.cxx b/odb/details/lock.cxx index ef37529..f474bf5 100644 --- a/odb/details/lock.cxx +++ b/odb/details/lock.cxx @@ -1,5 +1,4 @@ // file : odb/details/lock.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/lock.hxx> diff --git a/odb/details/lock.hxx b/odb/details/lock.hxx index f5b6bbf..0c54f03 100644 --- a/odb/details/lock.hxx +++ b/odb/details/lock.hxx @@ -1,5 +1,4 @@ // file : odb/details/lock.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_LOCK_HXX diff --git a/odb/details/meta/answer.hxx b/odb/details/meta/answer.hxx index 8667a4b..f15dc43 100644 --- a/odb/details/meta/answer.hxx +++ b/odb/details/meta/answer.hxx @@ -1,5 +1,4 @@ // file : odb/details/meta/answer.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_META_ANSWER_HXX diff --git a/odb/details/meta/class-p.hxx b/odb/details/meta/class-p.hxx index 35e9801..bddb452 100644 --- a/odb/details/meta/class-p.hxx +++ b/odb/details/meta/class-p.hxx @@ -1,5 +1,4 @@ // file : odb/details/meta/class-p.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_META_CLASS_HXX diff --git a/odb/details/meta/polymorphic-p.hxx b/odb/details/meta/polymorphic-p.hxx index cf12551..10fef6a 100644 --- a/odb/details/meta/polymorphic-p.hxx +++ b/odb/details/meta/polymorphic-p.hxx @@ -1,5 +1,4 @@ // file : odb/details/meta/polymorphic-p.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_META_POLYMORPHIC_HXX diff --git a/odb/details/meta/remove-const-volatile.hxx b/odb/details/meta/remove-const-volatile.hxx index 8d01de3..910ec35 100644 --- a/odb/details/meta/remove-const-volatile.hxx +++ b/odb/details/meta/remove-const-volatile.hxx @@ -1,5 +1,4 @@ // file : odb/details/meta/remove-const-volatile.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_META_REMOVE_CONST_VOLATILE_HXX diff --git a/odb/details/meta/remove-const.hxx b/odb/details/meta/remove-const.hxx index 61518ab..4a92ed3 100644 --- a/odb/details/meta/remove-const.hxx +++ b/odb/details/meta/remove-const.hxx @@ -1,5 +1,4 @@ // file : odb/details/meta/remove-const.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_META_REMOVE_CONST_HXX diff --git a/odb/details/meta/remove-pointer.hxx b/odb/details/meta/remove-pointer.hxx index 52b0218..9963fd7 100644 --- a/odb/details/meta/remove-pointer.hxx +++ b/odb/details/meta/remove-pointer.hxx @@ -1,5 +1,4 @@ // file : odb/details/meta/remove-pointer.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_META_REMOVE_POINTER_HXX diff --git a/odb/details/meta/remove-volatile.hxx b/odb/details/meta/remove-volatile.hxx index c100d32..877e532 100644 --- a/odb/details/meta/remove-volatile.hxx +++ b/odb/details/meta/remove-volatile.hxx @@ -1,5 +1,4 @@ // file : odb/details/meta/remove-volatile.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_META_REMOVE_VOLATILE_HXX diff --git a/odb/details/meta/static-assert.hxx b/odb/details/meta/static-assert.hxx index c9ecca5..a2cc81b 100644 --- a/odb/details/meta/static-assert.hxx +++ b/odb/details/meta/static-assert.hxx @@ -1,5 +1,4 @@ // file : odb/details/meta/static-assert.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_META_STATIC_ASSERT_HXX diff --git a/odb/details/mutex.cxx b/odb/details/mutex.cxx index d68c564..df367d8 100644 --- a/odb/details/mutex.cxx +++ b/odb/details/mutex.cxx @@ -1,5 +1,4 @@ // file : odb/details/mutex.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/mutex.hxx> diff --git a/odb/details/mutex.hxx b/odb/details/mutex.hxx index 49a9e15..df12013 100644 --- a/odb/details/mutex.hxx +++ b/odb/details/mutex.hxx @@ -1,5 +1,4 @@ // file : odb/details/mutex.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_MUTEX_HXX diff --git a/odb/details/posix/condition.hxx b/odb/details/posix/condition.hxx index 4502bc3..4f7c42a 100644 --- a/odb/details/posix/condition.hxx +++ b/odb/details/posix/condition.hxx @@ -1,5 +1,4 @@ // file : odb/details/posix/condition.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_POSIX_CONDITION_HXX diff --git a/odb/details/posix/condition.ixx b/odb/details/posix/condition.ixx index f097ebc..9b68d9f 100644 --- a/odb/details/posix/condition.ixx +++ b/odb/details/posix/condition.ixx @@ -1,5 +1,4 @@ // file : odb/details/posix/condition.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/posix/exceptions.hxx> diff --git a/odb/details/posix/exceptions.cxx b/odb/details/posix/exceptions.cxx index 211aa34..c346655 100644 --- a/odb/details/posix/exceptions.cxx +++ b/odb/details/posix/exceptions.cxx @@ -1,5 +1,4 @@ // file : odb/details/posix/exceptions.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/posix/exceptions.hxx> diff --git a/odb/details/posix/exceptions.hxx b/odb/details/posix/exceptions.hxx index cb0aabe..aff33b6 100644 --- a/odb/details/posix/exceptions.hxx +++ b/odb/details/posix/exceptions.hxx @@ -1,5 +1,4 @@ // file : odb/details/posix/exceptions.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_POSIX_EXCEPTIONS_HXX diff --git a/odb/details/posix/mutex.hxx b/odb/details/posix/mutex.hxx index 3120ae6..0cb94db 100644 --- a/odb/details/posix/mutex.hxx +++ b/odb/details/posix/mutex.hxx @@ -1,5 +1,4 @@ // file : odb/details/posix/mutex.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_POSIX_MUTEX_HXX diff --git a/odb/details/posix/mutex.ixx b/odb/details/posix/mutex.ixx index 48504fc..ee73d09 100644 --- a/odb/details/posix/mutex.ixx +++ b/odb/details/posix/mutex.ixx @@ -1,5 +1,4 @@ // file : odb/details/posix/mutex.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/posix/exceptions.hxx> diff --git a/odb/details/posix/thread.cxx b/odb/details/posix/thread.cxx index 6fe24a5..045f32a 100644 --- a/odb/details/posix/thread.cxx +++ b/odb/details/posix/thread.cxx @@ -1,5 +1,4 @@ // file : odb/details/posix/thread.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/unique-ptr.hxx> diff --git a/odb/details/posix/thread.hxx b/odb/details/posix/thread.hxx index e20b1d3..f0d29a7 100644 --- a/odb/details/posix/thread.hxx +++ b/odb/details/posix/thread.hxx @@ -1,5 +1,4 @@ // file : odb/details/posix/thread.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_POSIX_THREAD_HXX diff --git a/odb/details/posix/thread.ixx b/odb/details/posix/thread.ixx index b177c31..6576101 100644 --- a/odb/details/posix/thread.ixx +++ b/odb/details/posix/thread.ixx @@ -1,5 +1,4 @@ // file : odb/details/posix/thread.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/posix/exceptions.hxx> diff --git a/odb/details/posix/tls.hxx b/odb/details/posix/tls.hxx index 9b1a84a..e868819 100644 --- a/odb/details/posix/tls.hxx +++ b/odb/details/posix/tls.hxx @@ -1,5 +1,4 @@ // file : odb/details/posix/tls.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_POSIX_TLS_HXX diff --git a/odb/details/posix/tls.ixx b/odb/details/posix/tls.ixx index c160f77..7acc173 100644 --- a/odb/details/posix/tls.ixx +++ b/odb/details/posix/tls.ixx @@ -1,5 +1,4 @@ // file : odb/details/posix/tls.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/details/posix/tls.txx b/odb/details/posix/tls.txx index 352d626..e4c5b8f 100644 --- a/odb/details/posix/tls.txx +++ b/odb/details/posix/tls.txx @@ -1,5 +1,4 @@ // file : odb/details/posix/tls.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/unique-ptr.hxx> diff --git a/odb/details/shared-ptr-fwd.hxx b/odb/details/shared-ptr-fwd.hxx index df41a97..73377b9 100644 --- a/odb/details/shared-ptr-fwd.hxx +++ b/odb/details/shared-ptr-fwd.hxx @@ -1,5 +1,4 @@ // file : odb/details/shared-ptr-fwd.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_SHARED_PTR_FWD_HXX diff --git a/odb/details/shared-ptr.hxx b/odb/details/shared-ptr.hxx index 4c02796..5a1e842 100644 --- a/odb/details/shared-ptr.hxx +++ b/odb/details/shared-ptr.hxx @@ -1,5 +1,4 @@ // file : odb/details/shared-ptr.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_SHARED_PTR_HXX diff --git a/odb/details/shared-ptr/base.cxx b/odb/details/shared-ptr/base.cxx index 91957a5..d937400 100644 --- a/odb/details/shared-ptr/base.cxx +++ b/odb/details/shared-ptr/base.cxx @@ -1,5 +1,4 @@ // file : odb/details/shared-ptr/base.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/shared-ptr/base.hxx> diff --git a/odb/details/shared-ptr/base.hxx b/odb/details/shared-ptr/base.hxx index 7057e22..8cd4c86 100644 --- a/odb/details/shared-ptr/base.hxx +++ b/odb/details/shared-ptr/base.hxx @@ -1,5 +1,4 @@ // file : odb/details/shared-ptr/base.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_SHARED_PTR_BASE_HXX diff --git a/odb/details/shared-ptr/base.ixx b/odb/details/shared-ptr/base.ixx index dd899d7..1e2fd4b 100644 --- a/odb/details/shared-ptr/base.ixx +++ b/odb/details/shared-ptr/base.ixx @@ -1,5 +1,4 @@ // file : odb/details/shared-ptr/base.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/details/shared-ptr/base.txx b/odb/details/shared-ptr/base.txx index 9c7dc4c..77a957d 100644 --- a/odb/details/shared-ptr/base.txx +++ b/odb/details/shared-ptr/base.txx @@ -1,5 +1,4 @@ // file : odb/details/shared-ptr/base.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/meta/answer.hxx> diff --git a/odb/details/shared-ptr/counter-type.hxx b/odb/details/shared-ptr/counter-type.hxx index d0b3243..2b6caad 100644 --- a/odb/details/shared-ptr/counter-type.hxx +++ b/odb/details/shared-ptr/counter-type.hxx @@ -1,5 +1,4 @@ // file : odb/details/shared-ptr/counter-type.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_SHARED_PTR_COUNTER_TYPE_HXX diff --git a/odb/details/shared-ptr/exception.hxx b/odb/details/shared-ptr/exception.hxx index f6117dd..0ed50be 100644 --- a/odb/details/shared-ptr/exception.hxx +++ b/odb/details/shared-ptr/exception.hxx @@ -1,5 +1,4 @@ // file : odb/details/shared-ptr/exception.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_SHARED_PTR_EXCEPTION_HXX diff --git a/odb/details/thread.cxx b/odb/details/thread.cxx index 31868ca..b1fbe42 100644 --- a/odb/details/thread.cxx +++ b/odb/details/thread.cxx @@ -1,5 +1,4 @@ // file : odb/details/thread.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/thread.hxx> diff --git a/odb/details/thread.hxx b/odb/details/thread.hxx index 2c1e94d..9095f68 100644 --- a/odb/details/thread.hxx +++ b/odb/details/thread.hxx @@ -1,5 +1,4 @@ // file : odb/details/thread.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_THREAD_HXX diff --git a/odb/details/tls.hxx b/odb/details/tls.hxx index f2a8f20..de6c344 100644 --- a/odb/details/tls.hxx +++ b/odb/details/tls.hxx @@ -1,5 +1,4 @@ // file : odb/details/tls.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_TLS_HXX diff --git a/odb/details/transfer-ptr.hxx b/odb/details/transfer-ptr.hxx index c8fc87f..4b63df6 100644 --- a/odb/details/transfer-ptr.hxx +++ b/odb/details/transfer-ptr.hxx @@ -1,5 +1,4 @@ // file : odb/details/transfer-ptr.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_TRANSFER_PTR_HXX @@ -50,7 +49,7 @@ namespace odb transfer_ptr& operator= (const transfer_ptr&); public: - transfer_ptr (transfer_ptr&& p): p_ (p.transfer ()) {} + transfer_ptr (transfer_ptr&& p) noexcept: p_ (p.transfer ()) {} #endif ~transfer_ptr () {delete p_;} diff --git a/odb/details/type-info.hxx b/odb/details/type-info.hxx index cac77d8..fe01699 100644 --- a/odb/details/type-info.hxx +++ b/odb/details/type-info.hxx @@ -1,5 +1,4 @@ // file : odb/details/type-info.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_TYPE_INFO_HXX diff --git a/odb/details/unique-ptr.hxx b/odb/details/unique-ptr.hxx index 6f94f60..06b2c76 100644 --- a/odb/details/unique-ptr.hxx +++ b/odb/details/unique-ptr.hxx @@ -1,5 +1,4 @@ // file : odb/details/unique-ptr.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_UNIQUE_PTR_HXX @@ -23,8 +22,8 @@ namespace odb ~unique_ptr () {delete p_;} #ifdef ODB_CXX11 - unique_ptr (unique_ptr&& p): p_ (p.p_) {p.p_ = 0;} - unique_ptr& operator= (unique_ptr&& p) + unique_ptr (unique_ptr&& p) noexcept: p_ (p.p_) {p.p_ = 0;} + unique_ptr& operator= (unique_ptr&& p) noexcept { if (this != &p) { diff --git a/odb/details/unused.hxx b/odb/details/unused.hxx index 92d7090..8364c44 100644 --- a/odb/details/unused.hxx +++ b/odb/details/unused.hxx @@ -1,5 +1,4 @@ // file : odb/details/unused.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_UNUSED_DETAILS_HXX diff --git a/odb/details/win32/condition.cxx b/odb/details/win32/condition.cxx index 49195a8..3a4b605 100644 --- a/odb/details/win32/condition.cxx +++ b/odb/details/win32/condition.cxx @@ -1,5 +1,4 @@ // file : odb/details/win32/condition.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/win32/windows.hxx> diff --git a/odb/details/win32/condition.hxx b/odb/details/win32/condition.hxx index f41f485..69972a0 100644 --- a/odb/details/win32/condition.hxx +++ b/odb/details/win32/condition.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/condition.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_CONDITION_HXX diff --git a/odb/details/win32/condition.ixx b/odb/details/win32/condition.ixx index b51ccfa..37a2bac 100644 --- a/odb/details/win32/condition.ixx +++ b/odb/details/win32/condition.ixx @@ -1,5 +1,4 @@ // file : odb/details/win32/condition.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/win32/exceptions.hxx> diff --git a/odb/details/win32/dll.cxx b/odb/details/win32/dll.cxx index 7e6d9a3..49b660c 100644 --- a/odb/details/win32/dll.cxx +++ b/odb/details/win32/dll.cxx @@ -1,5 +1,4 @@ // file : odb/details/win32/dll.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file // If we are building a static library from VC++ (LIBODB_STATIC_LIB) or diff --git a/odb/details/win32/exceptions.cxx b/odb/details/win32/exceptions.cxx index 8b81ca8..3cf11c2 100644 --- a/odb/details/win32/exceptions.cxx +++ b/odb/details/win32/exceptions.cxx @@ -1,5 +1,4 @@ // file : odb/details/win32/exceptions.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/win32/exceptions.hxx> diff --git a/odb/details/win32/exceptions.hxx b/odb/details/win32/exceptions.hxx index 13363c8..b61a447 100644 --- a/odb/details/win32/exceptions.hxx +++ b/odb/details/win32/exceptions.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/exceptions.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_EXCEPTIONS_HXX diff --git a/odb/details/win32/init.cxx b/odb/details/win32/init.cxx index cca9e68..f6e0f9a 100644 --- a/odb/details/win32/init.cxx +++ b/odb/details/win32/init.cxx @@ -1,5 +1,4 @@ // file : odb/details/win32/init.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/win32/init.hxx> diff --git a/odb/details/win32/init.hxx b/odb/details/win32/init.hxx index 16fc4ce..1c15ffd 100644 --- a/odb/details/win32/init.hxx +++ b/odb/details/win32/init.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/init.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_INIT_HXX diff --git a/odb/details/win32/lock.hxx b/odb/details/win32/lock.hxx index eef01c7..2e81ac6 100644 --- a/odb/details/win32/lock.hxx +++ b/odb/details/win32/lock.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/lock.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_LOCK_HXX diff --git a/odb/details/win32/mutex.hxx b/odb/details/win32/mutex.hxx index f135a72..b2cd997 100644 --- a/odb/details/win32/mutex.hxx +++ b/odb/details/win32/mutex.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/mutex.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_MUTEX_HXX diff --git a/odb/details/win32/mutex.ixx b/odb/details/win32/mutex.ixx index 81d69ba..bb06415 100644 --- a/odb/details/win32/mutex.ixx +++ b/odb/details/win32/mutex.ixx @@ -1,5 +1,4 @@ // file : odb/details/win32/mutex.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/details/win32/once-init.hxx b/odb/details/win32/once-init.hxx index c8fdd45..a465c90 100644 --- a/odb/details/win32/once-init.hxx +++ b/odb/details/win32/once-init.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/once-init.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_ONCE_INIT_HXX diff --git a/odb/details/win32/once.cxx b/odb/details/win32/once.cxx index 8a489ec..7b98d80 100644 --- a/odb/details/win32/once.cxx +++ b/odb/details/win32/once.cxx @@ -1,5 +1,4 @@ // file : odb/details/win32/once.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/win32/windows.hxx> diff --git a/odb/details/win32/once.hxx b/odb/details/win32/once.hxx index 2b99709..45748b8 100644 --- a/odb/details/win32/once.hxx +++ b/odb/details/win32/once.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/once.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_ONCE_HXX diff --git a/odb/details/win32/once.ixx b/odb/details/win32/once.ixx index a893e67..1638706 100644 --- a/odb/details/win32/once.ixx +++ b/odb/details/win32/once.ixx @@ -1,5 +1,4 @@ // file : odb/details/win32/once.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/win32/lock.hxx> diff --git a/odb/details/win32/thread.cxx b/odb/details/win32/thread.cxx index 5a76247..46720d4 100644 --- a/odb/details/win32/thread.cxx +++ b/odb/details/win32/thread.cxx @@ -1,5 +1,4 @@ // file : odb/details/win32/thread.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/win32/windows.hxx> diff --git a/odb/details/win32/thread.hxx b/odb/details/win32/thread.hxx index b65a503..a4e1a15 100644 --- a/odb/details/win32/thread.hxx +++ b/odb/details/win32/thread.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/thread.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_THREAD_HXX diff --git a/odb/details/win32/tls-init.hxx b/odb/details/win32/tls-init.hxx index c187dc2..0a44a10 100644 --- a/odb/details/win32/tls-init.hxx +++ b/odb/details/win32/tls-init.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/tls-init.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_TLS_INIT_HXX diff --git a/odb/details/win32/tls.cxx b/odb/details/win32/tls.cxx index a589066..2edc364 100644 --- a/odb/details/win32/tls.cxx +++ b/odb/details/win32/tls.cxx @@ -1,5 +1,4 @@ // file : odb/details/win32/tls.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/win32/windows.hxx> diff --git a/odb/details/win32/tls.hxx b/odb/details/win32/tls.hxx index eccd3ea..2a75cc8 100644 --- a/odb/details/win32/tls.hxx +++ b/odb/details/win32/tls.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/tls.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_TLS_HXX diff --git a/odb/details/win32/tls.ixx b/odb/details/win32/tls.ixx index cd8c304..fbcc3dd 100644 --- a/odb/details/win32/tls.ixx +++ b/odb/details/win32/tls.ixx @@ -1,5 +1,4 @@ // file : odb/details/win32/tls.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/details/win32/tls.txx b/odb/details/win32/tls.txx index 1607a95..96bed4c 100644 --- a/odb/details/win32/tls.txx +++ b/odb/details/win32/tls.txx @@ -1,5 +1,4 @@ // file : odb/details/win32/tls.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/details/unique-ptr.hxx> diff --git a/odb/details/win32/windows.hxx b/odb/details/win32/windows.hxx index 9117bec..9ff4cb4 100644 --- a/odb/details/win32/windows.hxx +++ b/odb/details/win32/windows.hxx @@ -1,5 +1,4 @@ // file : odb/details/win32/windows.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WIN32_WINDOWS_HXX diff --git a/odb/details/wrapper-p.hxx b/odb/details/wrapper-p.hxx index da90f4a..8f72b5d 100644 --- a/odb/details/wrapper-p.hxx +++ b/odb/details/wrapper-p.hxx @@ -1,5 +1,4 @@ // file : odb/details/wrapper-p.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_DETAILS_WRAPPER_P_HXX diff --git a/odb/exception.hxx b/odb/exception.hxx index 9f90770..39daf92 100644 --- a/odb/exception.hxx +++ b/odb/exception.hxx @@ -1,5 +1,4 @@ // file : odb/exception.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_EXCEPTION_HXX diff --git a/odb/exceptions.cxx b/odb/exceptions.cxx index 552de74..bb13b6c 100644 --- a/odb/exceptions.cxx +++ b/odb/exceptions.cxx @@ -1,5 +1,4 @@ // file : odb/exceptions.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <cstring> // std::strlen diff --git a/odb/exceptions.hxx b/odb/exceptions.hxx index 531f8c0..d283010 100644 --- a/odb/exceptions.hxx +++ b/odb/exceptions.hxx @@ -1,5 +1,4 @@ // file : odb/exceptions.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_EXCEPTIONS_HXX diff --git a/odb/forward.hxx b/odb/forward.hxx index b9913d9..6f1176d 100644 --- a/odb/forward.hxx +++ b/odb/forward.hxx @@ -1,5 +1,4 @@ // file : odb/forward.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_FORWARD_HXX diff --git a/odb/function-table.hxx b/odb/function-table.hxx index 1e2a5eb..b1a5a94 100644 --- a/odb/function-table.hxx +++ b/odb/function-table.hxx @@ -1,5 +1,4 @@ // file : odb/function-table.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_FUNCTION_TABLE_HXX diff --git a/odb/lazy-pointer-traits.hxx b/odb/lazy-pointer-traits.hxx index 73163a2..2a6c8eb 100644 --- a/odb/lazy-pointer-traits.hxx +++ b/odb/lazy-pointer-traits.hxx @@ -1,5 +1,4 @@ // file : odb/lazy-pointer-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_LAZY_POINTER_TRAITS_HXX diff --git a/odb/lazy-ptr-impl.hxx b/odb/lazy-ptr-impl.hxx index 3c4138f..89fe798 100644 --- a/odb/lazy-ptr-impl.hxx +++ b/odb/lazy-ptr-impl.hxx @@ -1,5 +1,4 @@ // file : odb/lazy-ptr-impl.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_LAZY_PTR_IMPL_HXX @@ -45,10 +44,10 @@ namespace odb // public: #ifdef ODB_CXX11 - lazy_ptr_base (lazy_ptr_base&&); + lazy_ptr_base (lazy_ptr_base&&) noexcept; lazy_ptr_base& - operator= (lazy_ptr_base&&); + operator= (lazy_ptr_base&&) noexcept; #endif public: @@ -140,13 +139,13 @@ namespace odb // public: #ifdef ODB_CXX11 - lazy_ptr_impl (lazy_ptr_impl&&); + lazy_ptr_impl (lazy_ptr_impl&&) noexcept; template <typename Y> lazy_ptr_impl (lazy_ptr_impl<Y>&&); lazy_ptr_impl& - operator= (lazy_ptr_impl&&); + operator= (lazy_ptr_impl&&) noexcept; template <typename Y> lazy_ptr_impl& diff --git a/odb/lazy-ptr-impl.ixx b/odb/lazy-ptr-impl.ixx index e4a32b4..9ab0471 100644 --- a/odb/lazy-ptr-impl.ixx +++ b/odb/lazy-ptr-impl.ixx @@ -1,5 +1,4 @@ // file : odb/lazy-ptr-impl.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb @@ -32,7 +31,7 @@ namespace odb #ifdef ODB_CXX11 inline lazy_ptr_base:: - lazy_ptr_base (lazy_ptr_base&& r) + lazy_ptr_base (lazy_ptr_base&& r) noexcept : id_ (r.id_), db_ (r.db_), loader_ (r.loader_), free_ (r.free_), copy_ (r.copy_) { @@ -79,20 +78,20 @@ namespace odb #ifdef ODB_CXX11 inline lazy_ptr_base& lazy_ptr_base:: - operator= (lazy_ptr_base&& r) + operator= (lazy_ptr_base&& r) noexcept { if (id_ != r.id_) { reset_id (); id_ = r.id_; - db_ = r.db_; - loader_ = r.loader_; free_ = r.free_; copy_ = r.copy_; r.id_ = 0; } + db_ = r.db_; + loader_ = r.loader_; return *this; } #endif @@ -273,7 +272,7 @@ namespace odb #ifdef ODB_CXX11 template <typename T> inline lazy_ptr_impl<T>:: - lazy_ptr_impl (lazy_ptr_impl&& r) + lazy_ptr_impl (lazy_ptr_impl&& r) noexcept : lazy_ptr_base (std::move (r)) { } @@ -288,7 +287,7 @@ namespace odb template <typename T> inline lazy_ptr_impl<T>& lazy_ptr_impl<T>:: - operator= (lazy_ptr_impl&& r) + operator= (lazy_ptr_impl&& r) noexcept { lazy_ptr_base& b (*this); b = std::move (r); diff --git a/odb/lazy-ptr-impl.txx b/odb/lazy-ptr-impl.txx index aac3db6..7aea9c3 100644 --- a/odb/lazy-ptr-impl.txx +++ b/odb/lazy-ptr-impl.txx @@ -1,5 +1,4 @@ // file : odb/lazy-ptr-impl.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/lazy-ptr.hxx b/odb/lazy-ptr.hxx index 9f2f141..ab31dfc 100644 --- a/odb/lazy-ptr.hxx +++ b/odb/lazy-ptr.hxx @@ -1,5 +1,4 @@ // file : odb/lazy-ptr.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_LAZY_PTR_HXX @@ -247,14 +246,14 @@ namespace odb lazy_unique_ptr (pointer, const deleter_type&) /*noexcept*/; lazy_unique_ptr (pointer, deleter_type&&) /*noexcept*/; - lazy_unique_ptr (lazy_unique_ptr&&) /*noexcept*/; + lazy_unique_ptr (lazy_unique_ptr&&) noexcept; template <class T1, class D1> lazy_unique_ptr (lazy_unique_ptr<T1, D1>&&) /*noexcept*/; //template <class T1> lazy_unique_ptr (std::auto_ptr<T1>&&) /*noexcept*/; #ifdef ODB_CXX11_NULLPTR lazy_unique_ptr& operator= (std::nullptr_t) /*noexcept*/; #endif - lazy_unique_ptr& operator= (lazy_unique_ptr&&) /*noexcept*/; + lazy_unique_ptr& operator= (lazy_unique_ptr&&) noexcept; template <class T1, class D1> lazy_unique_ptr& operator= (lazy_unique_ptr<T1, D1>&&) /*noexcept*/; T& operator* () const; @@ -408,7 +407,7 @@ namespace odb lazy_shared_ptr (const lazy_shared_ptr&) /*noexcept*/; template <class Y> lazy_shared_ptr (const lazy_shared_ptr<Y>&) /*noexcept*/; - lazy_shared_ptr (lazy_shared_ptr&&) /*noexcept*/; + lazy_shared_ptr (lazy_shared_ptr&&) noexcept; template <class Y> lazy_shared_ptr (lazy_shared_ptr<Y>&&) /*noexcept*/; template <class Y> explicit lazy_shared_ptr (const lazy_weak_ptr<Y>&); //template <class Y> explicit lazy_shared_ptr (std::auto_ptr<Y>&&); @@ -418,7 +417,7 @@ namespace odb lazy_shared_ptr& operator= (const lazy_shared_ptr&) /*noexcept*/; template <class Y> lazy_shared_ptr& operator= (const lazy_shared_ptr<Y>&) /*noexcept*/; - lazy_shared_ptr& operator= (lazy_shared_ptr&&) /*noexcept*/; + lazy_shared_ptr& operator= (lazy_shared_ptr&&) noexcept; template <class Y> lazy_shared_ptr& operator= (lazy_shared_ptr<Y>&&) /*noexcept*/; //template <class Y> lazy_shared_ptr& operator= (std::auto_ptr<Y>&&); template <class Y, class D> lazy_shared_ptr& operator= (std::unique_ptr<Y, D>&&); diff --git a/odb/lazy-ptr.ixx b/odb/lazy-ptr.ixx index 7ec9a24..a2d72f5 100644 --- a/odb/lazy-ptr.ixx +++ b/odb/lazy-ptr.ixx @@ -1,5 +1,4 @@ // file : odb/lazy-ptr.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb @@ -520,7 +519,7 @@ namespace odb template <class T, class D> lazy_unique_ptr<T, D>:: - lazy_unique_ptr (lazy_unique_ptr&& r) + lazy_unique_ptr (lazy_unique_ptr&& r) noexcept : p_ (std::move (r.p_)), i_ (std::move (r.i_)) {} template <class T, class D> @@ -546,7 +545,7 @@ namespace odb template <class T, class D> lazy_unique_ptr<T, D>& lazy_unique_ptr<T, D>:: - operator= (lazy_unique_ptr&& r) + operator= (lazy_unique_ptr&& r) noexcept { p_ = std::move (r.p_); i_ = std::move (r.i_); @@ -923,7 +922,7 @@ namespace odb template <class T> inline lazy_shared_ptr<T>:: - lazy_shared_ptr (lazy_shared_ptr&& r) + lazy_shared_ptr (lazy_shared_ptr&& r) noexcept : p_ (std::move (r.p_)), i_ (std::move (r.i_)) {} template <class T> @@ -980,7 +979,7 @@ namespace odb template <class T> inline lazy_shared_ptr<T>& lazy_shared_ptr<T>:: - operator= (lazy_shared_ptr&& r) + operator= (lazy_shared_ptr&& r) noexcept { p_ = std::move (r.p_); i_ = std::move (r.i_); diff --git a/odb/lazy-ptr.txx b/odb/lazy-ptr.txx index 5309681..17a7405 100644 --- a/odb/lazy-ptr.txx +++ b/odb/lazy-ptr.txx @@ -1,5 +1,4 @@ // file : odb/lazy-ptr.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/makefile b/odb/makefile index 24f7eb3..01b395e 100644 --- a/odb/makefile +++ b/odb/makefile @@ -1,5 +1,4 @@ # file : odb/makefile -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make @@ -137,7 +136,7 @@ libodb-vc10.vcxproj libodb-vc10.vcxproj.filters \ libodb-vc11.vcxproj libodb-vc11.vcxproj.filters \ libodb-vc12.vcxproj libodb-vc12.vcxproj.filters $(dist): export interface_version = $(shell sed -e \ -'s/^\([0-9]*\.[0-9]*\).*/\1/' $(src_root)/version) +'s/^\([0-9]*\.[0-9]*\).*/\1/' $(src_root)/version.txt) $(dist): $(call dist-data,$(sources) $(posix_threads_sources) \ diff --git a/odb/nested-container.hxx b/odb/nested-container.hxx index 67cf96f..d7e4ec1 100644 --- a/odb/nested-container.hxx +++ b/odb/nested-container.hxx @@ -1,5 +1,4 @@ // file : odb/nested-container.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_NESTED_CONTAINER_HXX @@ -20,22 +19,29 @@ namespace odb { // Nested container emulation support for ODB. // - // Note that the outer key in the inner container should strictly - // speaking be a foreign key pointing to the key of the outer - // container. The only way to achieve this currently is to manually - // add the constraint via ALTER TABLE ADD CONSTRAINT. Note, however, - // that as long as we only modify these tables via the ODB container - // interface, not having the foreign key (and not having ON DELETE - // CASCADE) should be harmless (since we have a foreign key pointing - // to the object id). + // In a nutshell, the idea is to represent a nested container, for example, + // vector<vector<V>>, as map<nested_key, V> where nested_key is a composite + // key consisting of the outer and inner container indexes. // - - // Map key that is used to emulate nested container mapping in ODB. - // Template parameter T is a tag that allows us to distinguish keys - // for unrelated containers in order to assign column names, etc. - // Use inner container type for T. + // Note that with this approach the empty trailing entries of the outer + // container will not be added on load. It is assumed that the user handles + // that on their own, for example, by pre-loading the outer container entry + // members if there are any. + // + // Also note that the outer key in the inner container should strictly + // speaking be a foreign key pointing to the key of the outer container. The + // only way to achieve this currently is to manually add the constraint via + // ALTER TABLE ADD CONSTRAINT. Note, however, that as long as we only modify + // these tables via the ODB container interface, not having the foreign key + // (and not having ON DELETE CASCADE) should be harmless (since we have a + // foreign key pointing to the object id). + + // Map key that is used to emulate 1-level nested container mapping (for + // example, vector<vector<V>>). Template parameter IC is a tag that allows + // us to distinguish keys for unrelated containers in order to assign column + // names, etc. Use the inner container type (for example, vector<V>) for IC. // - template <typename T, + template <typename IC, typename O = std::size_t, typename I = std::size_t> struct nested_key @@ -55,10 +61,40 @@ namespace odb return outer < v.outer || (outer == v.outer && inner < v.inner); } }; + + // Map key that is used to emulate 2-level nested container mapping (for + // example, vector<vector<vector<V>>>>). Use the middle container type for + // MC (for example, vector<vector<V>>). + // + template <typename MC, + typename O = std::size_t, + typename M = std::size_t, + typename I = std::size_t> + struct nested2_key + { + using outer_type = O; + using middle_type = M; + using inner_type = I; + + outer_type outer; + middle_type middle; + inner_type inner; + + nested2_key () = default; + nested2_key (outer_type o, middle_type m, inner_type i) + : outer (o), middle (m), inner (i) {} + + bool + operator< (const nested2_key& v) const + { + return outer != v.outer ? outer < v.outer : + middle != v.middle ? middle < v.middle : + inner < v.inner ; + } + }; } #include <map> -#include <vector> #include <cstddef> // size_t #include <utility> // move(), declval() #include <cassert> @@ -66,46 +102,113 @@ namespace odb namespace odb { - // vector<vector<>> - // - template <typename IC> - struct nested_value_type: - std::remove_reference<decltype (std::declval<IC> ()[0])> {}; + template <typename C> + struct nested1_type: + std::remove_reference<decltype (std::declval<C> ()[0])> {}; + + template <typename C> + struct nested2_type: + std::remove_reference<decltype (std::declval<C> ()[0][0])> {}; + + template <typename C> + struct nested3_type: + std::remove_reference<decltype (std::declval<C> ()[0][0][0])> {}; - template <typename IC> - std::map<nested_key<IC>, typename nested_value_type<IC>::type> - nested_get (const std::vector<IC>& v) + // 1-level nesting. + // + template <typename OC> // For example, OC = vector<vector<V>>. + std::map<nested_key<typename nested1_type<OC>::type>, + typename nested2_type<OC>::type> + nested_get (const OC& oc) { using namespace std; - using I = typename nested_value_type<IC>::type; + using IC = typename nested1_type<OC>::type; + using V = typename nested2_type<OC>::type; using K = nested_key<IC>; - map<K, I> r; - for (size_t n (0); n != v.size (); ++n) + map<K, V> r; + for (size_t o (0); o != oc.size (); ++o) + { + const IC& ic (oc[o]); + for (size_t i (0); i != ic.size (); ++i) + r.emplace (K (o, i), ic[i]); + } + return r; + } + + template <typename K, typename V, typename OC> + void + nested_set (OC& oc, std::map<K, V>&& r) + { + using namespace std; + + for (auto& p: r) + { + size_t o (p.first.outer); + size_t i (p.first.inner); + V& v (p.second); + + if (o >= oc.size ()) + oc.resize (o + 1); + + assert (i == oc[o].size ()); + + oc[o].push_back (move (v)); + } + } + + // 2-level nesting. + // + template <typename OC> // For example, OC = vector<vector<vector<V>>>. + std::map<nested2_key<typename nested1_type<OC>::type>, + typename nested3_type<OC>::type> + nested2_get (const OC& oc) + { + using namespace std; + + using MC = typename nested1_type<OC>::type; + using V = typename nested3_type<OC>::type; + using K = nested2_key<MC>; + + map<K, V> r; + for (size_t o (0); o != oc.size (); ++o) { - const IC& o (v[n]); - for (size_t m (0); m != o.size (); ++m) - r.emplace (K (n, m), o[m]); + const auto& mc (oc[o]); + for (size_t m (0); m != mc.size (); ++m) + { + const auto& ic (mc[m]); + for (size_t i (0); i != ic.size (); ++i) + r.emplace (K (o, m, i), ic[i]); + } } return r; } - template <typename K, typename I, typename IC> + template <typename K, typename V, typename OC> void - nested_set (std::vector<IC>& v, std::map<K, I>&& r) + nested2_set (OC& oc, std::map<K, V>&& r) { using namespace std; for (auto& p: r) { - size_t n (p.first.outer); - size_t m (p.first.inner); - I& i (p.second); + size_t o (p.first.outer); + size_t m (p.first.middle); + size_t i (p.first.inner); + V& v (p.second); + + if (o >= oc.size ()) + oc.resize (o + 1); + + auto& mc (oc[o]); + + if (m >= mc.size ()) + mc.resize (m + 1); + + assert (i == mc[m].size ()); - assert (n < v.size ()); - assert (m == v[n].size ()); - v[n].push_back (move (i)); + mc[m].push_back (move (v)); } } } diff --git a/odb/no-id-object-result.hxx b/odb/no-id-object-result.hxx index 01fef38..556065b 100644 --- a/odb/no-id-object-result.hxx +++ b/odb/no-id-object-result.hxx @@ -1,5 +1,4 @@ // file : odb/no-id-object-result.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_NO_ID_OBJECT_RESULT_HXX diff --git a/odb/no-id-object-result.txx b/odb/no-id-object-result.txx index cd6707f..886fe4b 100644 --- a/odb/no-id-object-result.txx +++ b/odb/no-id-object-result.txx @@ -1,5 +1,4 @@ // file : odb/no-id-object-result.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/no-op-cache-traits.hxx b/odb/no-op-cache-traits.hxx index 5f56a77..b6d0518 100644 --- a/odb/no-op-cache-traits.hxx +++ b/odb/no-op-cache-traits.hxx @@ -1,5 +1,4 @@ // file : odb/no-op-cache-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_NO_OP_CACHE_TRAITS_HXX diff --git a/odb/nullable.hxx b/odb/nullable.hxx index 61d633c..d13f0c9 100644 --- a/odb/nullable.hxx +++ b/odb/nullable.hxx @@ -1,5 +1,4 @@ // file : odb/nullable.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_NULLABLE_HXX diff --git a/odb/object-result.hxx b/odb/object-result.hxx index 95864b5..056d518 100644 --- a/odb/object-result.hxx +++ b/odb/object-result.hxx @@ -1,5 +1,4 @@ // file : odb/object-result.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_OBJECT_RESULT_HXX diff --git a/odb/pointer-traits.hxx b/odb/pointer-traits.hxx index ef3c8ee..a0baa21 100644 --- a/odb/pointer-traits.hxx +++ b/odb/pointer-traits.hxx @@ -1,5 +1,4 @@ // file : odb/pointer-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_POINTER_TRAITS_HXX diff --git a/odb/polymorphic-info.hxx b/odb/polymorphic-info.hxx index cbb6d38..0f410d5 100644 --- a/odb/polymorphic-info.hxx +++ b/odb/polymorphic-info.hxx @@ -1,5 +1,4 @@ // file : odb/polymorphic-info.hxx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_POLYMORPHIC_INFO_HXX diff --git a/odb/polymorphic-map.hxx b/odb/polymorphic-map.hxx index 9f0ff7b..2e61314 100644 --- a/odb/polymorphic-map.hxx +++ b/odb/polymorphic-map.hxx @@ -1,5 +1,4 @@ // file : odb/polymorphic-map.hxx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_POLYMORPHIC_MAP_HXX diff --git a/odb/polymorphic-map.ixx b/odb/polymorphic-map.ixx index 8e50d1e..4e00c46 100644 --- a/odb/polymorphic-map.ixx +++ b/odb/polymorphic-map.ixx @@ -1,5 +1,4 @@ // file : odb/polymorphic-map.ixx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/polymorphic-map.txx b/odb/polymorphic-map.txx index 1386036..9e0c0f0 100644 --- a/odb/polymorphic-map.txx +++ b/odb/polymorphic-map.txx @@ -1,5 +1,4 @@ // file : odb/polymorphic-map.txx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/exceptions.hxx> // no_type_info diff --git a/odb/polymorphic-object-result.hxx b/odb/polymorphic-object-result.hxx index f585150..5498856 100644 --- a/odb/polymorphic-object-result.hxx +++ b/odb/polymorphic-object-result.hxx @@ -1,5 +1,4 @@ // file : odb/polymorphic-object-result.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_POLYMORPHIC_OBJECT_RESULT_HXX diff --git a/odb/polymorphic-object-result.txx b/odb/polymorphic-object-result.txx index 6208745..d9252e9 100644 --- a/odb/polymorphic-object-result.txx +++ b/odb/polymorphic-object-result.txx @@ -1,5 +1,4 @@ // file : odb/polymorphic-object-result.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/exceptions.hxx> diff --git a/odb/post.hxx b/odb/post.hxx index 288ae6d..3cdfd94 100644 --- a/odb/post.hxx +++ b/odb/post.hxx @@ -1,5 +1,4 @@ // file : odb/post.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifdef _MSC_VER diff --git a/odb/pre.hxx b/odb/pre.hxx index 2c44250..088f172 100644 --- a/odb/pre.hxx +++ b/odb/pre.hxx @@ -1,5 +1,4 @@ // file : odb/pre.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifdef _MSC_VER diff --git a/odb/prepared-query.cxx b/odb/prepared-query.cxx index 22862fe..70bcaa1 100644 --- a/odb/prepared-query.cxx +++ b/odb/prepared-query.cxx @@ -1,8 +1,8 @@ // file : odb/prepared-query.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/connection.hxx> +#include <odb/transaction.hxx> #include <odb/prepared-query.hxx> namespace odb @@ -27,6 +27,12 @@ namespace odb next_->prev_ = this; } + bool prepared_query_impl:: + verify_connection (transaction& t) + { + return &t.connection () == &stmt->connection (); + } + void prepared_query_impl:: list_remove () { diff --git a/odb/prepared-query.hxx b/odb/prepared-query.hxx index c9bc33a..7cac6da 100644 --- a/odb/prepared-query.hxx +++ b/odb/prepared-query.hxx @@ -1,5 +1,4 @@ // file : odb/prepared-query.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_PREPARED_QUERY_HXX @@ -25,6 +24,12 @@ namespace odb prepared_query_impl (connection&); + // Verify this prepared query and the specified transaction use the + // same connection. + // + virtual bool + verify_connection (transaction&); + bool cached; connection& conn; const char* name; diff --git a/odb/query-dynamic.cxx b/odb/query-dynamic.cxx index b0652e7..bf9fd9c 100644 --- a/odb/query-dynamic.cxx +++ b/odb/query-dynamic.cxx @@ -1,5 +1,4 @@ // file : odb/query-dynamic.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/query-dynamic.hxx> diff --git a/odb/query-dynamic.hxx b/odb/query-dynamic.hxx index e6e4205..cd0ce05 100644 --- a/odb/query-dynamic.hxx +++ b/odb/query-dynamic.hxx @@ -1,5 +1,4 @@ // file : odb/query-dynamic.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_QUERY_DYNAMIC_HXX diff --git a/odb/query-dynamic.ixx b/odb/query-dynamic.ixx index 4647714..8de7b8e 100644 --- a/odb/query-dynamic.ixx +++ b/odb/query-dynamic.ixx @@ -1,5 +1,4 @@ // file : odb/query-dynamic.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/query-dynamic.txx b/odb/query-dynamic.txx index 8195c82..9ea16d2 100644 --- a/odb/query-dynamic.txx +++ b/odb/query-dynamic.txx @@ -1,5 +1,4 @@ // file : odb/query-dynamic.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/query.hxx b/odb/query.hxx index 7b78bcd..9375738 100644 --- a/odb/query.hxx +++ b/odb/query.hxx @@ -1,5 +1,4 @@ // file : odb/query.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_QUERY_HXX diff --git a/odb/result.cxx b/odb/result.cxx index 3bb04cf..e9393ca 100644 --- a/odb/result.cxx +++ b/odb/result.cxx @@ -1,5 +1,4 @@ // file : odb/result.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/result.hxx> diff --git a/odb/result.hxx b/odb/result.hxx index 177195c..87a6869 100644 --- a/odb/result.hxx +++ b/odb/result.hxx @@ -1,5 +1,4 @@ // file : odb/result.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_RESULT_HXX diff --git a/odb/result.txx b/odb/result.txx index e937c37..b69d92a 100644 --- a/odb/result.txx +++ b/odb/result.txx @@ -1,5 +1,4 @@ // file : odb/result.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <cassert> diff --git a/odb/schema-catalog-impl.hxx b/odb/schema-catalog-impl.hxx index 6eaae5a..dd729db 100644 --- a/odb/schema-catalog-impl.hxx +++ b/odb/schema-catalog-impl.hxx @@ -1,5 +1,4 @@ // file : odb/schema-catalog-impl.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_SCHEMA_CATALOG_IMPL_HXX diff --git a/odb/schema-catalog.cxx b/odb/schema-catalog.cxx index 946884f..1bdc112 100644 --- a/odb/schema-catalog.cxx +++ b/odb/schema-catalog.cxx @@ -1,5 +1,4 @@ // file : odb/schema-catalog.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <map> @@ -268,6 +267,9 @@ namespace odb schema_version i (db.schema_version (name)); + if (i > v) + throw unknown_schema_version (i); // Database too new. + // If there is no schema, then "migrate" by creating it. // if (i == 0) diff --git a/odb/schema-catalog.hxx b/odb/schema-catalog.hxx index 151b98e..c38cd4f 100644 --- a/odb/schema-catalog.hxx +++ b/odb/schema-catalog.hxx @@ -1,5 +1,4 @@ // file : odb/schema-catalog.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_SCHEMA_CATALOG_HXX diff --git a/odb/schema-version.hxx b/odb/schema-version.hxx index 9fb6b15..1f047a4 100644 --- a/odb/schema-version.hxx +++ b/odb/schema-version.hxx @@ -1,5 +1,4 @@ // file : odb/schema-version.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_SCHEMA_VERSION_HXX diff --git a/odb/section.cxx b/odb/section.cxx index bf92ca7..0fe5211 100644 --- a/odb/section.cxx +++ b/odb/section.cxx @@ -1,5 +1,4 @@ // file : odb/section.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/section.hxx> diff --git a/odb/section.hxx b/odb/section.hxx index ed02d9a..98b98cf 100644 --- a/odb/section.hxx +++ b/odb/section.hxx @@ -1,5 +1,4 @@ // file : odb/section.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_SECTION_HXX diff --git a/odb/session.cxx b/odb/session.cxx index d8f03d3..bc0e854 100644 --- a/odb/session.cxx +++ b/odb/session.cxx @@ -1,5 +1,4 @@ // file : odb/session.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/exceptions.hxx> diff --git a/odb/session.hxx b/odb/session.hxx index 44325da..a14c42f 100644 --- a/odb/session.hxx +++ b/odb/session.hxx @@ -1,5 +1,4 @@ // file : odb/session.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_SESSION_HXX diff --git a/odb/session.ixx b/odb/session.ixx index 9973d24..4acdc1b 100644 --- a/odb/session.ixx +++ b/odb/session.ixx @@ -1,5 +1,4 @@ // file : odb/session.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/exceptions.hxx> diff --git a/odb/session.txx b/odb/session.txx index d9a7bc7..d74fe0f 100644 --- a/odb/session.txx +++ b/odb/session.txx @@ -1,5 +1,4 @@ // file : odb/session.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/simple-object-result.hxx b/odb/simple-object-result.hxx index 689c6fa..53c0cb2 100644 --- a/odb/simple-object-result.hxx +++ b/odb/simple-object-result.hxx @@ -1,5 +1,4 @@ // file : odb/simple-object-result.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_SIMPLE_OBJECT_RESULT_HXX diff --git a/odb/simple-object-result.txx b/odb/simple-object-result.txx index 995ebd6..00521f8 100644 --- a/odb/simple-object-result.txx +++ b/odb/simple-object-result.txx @@ -1,5 +1,4 @@ // file : odb/simple-object-result.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/statement-processing-common.hxx b/odb/statement-processing-common.hxx index 0643b7c..23661fc 100644 --- a/odb/statement-processing-common.hxx +++ b/odb/statement-processing-common.hxx @@ -1,5 +1,4 @@ // file : odb/statement-processingc-common.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STATEMENT_PROCESSING_COMMON_HXX diff --git a/odb/statement-processing.cxx b/odb/statement-processing.cxx index 2bfc589..708c9ab 100644 --- a/odb/statement-processing.cxx +++ b/odb/statement-processing.cxx @@ -1,5 +1,4 @@ // file : odb/statement-processing.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <cassert> diff --git a/odb/statement.cxx b/odb/statement.cxx index 64ea75a..35e7b77 100644 --- a/odb/statement.cxx +++ b/odb/statement.cxx @@ -1,5 +1,4 @@ // file : odb/statement.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/statement.hxx> diff --git a/odb/statement.hxx b/odb/statement.hxx index 1f33403..83513c0 100644 --- a/odb/statement.hxx +++ b/odb/statement.hxx @@ -1,5 +1,4 @@ // file : odb/statement.hxx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STATEMENT_HXX diff --git a/odb/std-array-traits.hxx b/odb/std-array-traits.hxx index 2cdd032..1d0f1a1 100644 --- a/odb/std-array-traits.hxx +++ b/odb/std-array-traits.hxx @@ -1,5 +1,4 @@ // file : odb/std-array-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STD_ARRAY_TRAITS_HXX diff --git a/odb/std-deque-traits.hxx b/odb/std-deque-traits.hxx index 4f06bc8..351c6db 100644 --- a/odb/std-deque-traits.hxx +++ b/odb/std-deque-traits.hxx @@ -1,5 +1,4 @@ // file : odb/std-deque-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STD_DEQUE_TRAITS_HXX diff --git a/odb/std-forward-list-traits.hxx b/odb/std-forward-list-traits.hxx index 9af4e2e..7978b1c 100644 --- a/odb/std-forward-list-traits.hxx +++ b/odb/std-forward-list-traits.hxx @@ -1,5 +1,4 @@ // file : odb/std-forward-list-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STD_FORWARD_LIST_TRAITS_HXX diff --git a/odb/std-list-traits.hxx b/odb/std-list-traits.hxx index f6c7534..f349079 100644 --- a/odb/std-list-traits.hxx +++ b/odb/std-list-traits.hxx @@ -1,5 +1,4 @@ // file : odb/std-list-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STD_LIST_TRAITS_HXX diff --git a/odb/std-map-traits.hxx b/odb/std-map-traits.hxx index 8b0022f..2b9bf7d 100644 --- a/odb/std-map-traits.hxx +++ b/odb/std-map-traits.hxx @@ -1,5 +1,4 @@ // file : odb/std-map-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STD_MAP_TRAITS_HXX diff --git a/odb/std-set-traits.hxx b/odb/std-set-traits.hxx index 3beeb4b..45a5dcc 100644 --- a/odb/std-set-traits.hxx +++ b/odb/std-set-traits.hxx @@ -1,5 +1,4 @@ // file : odb/std-set-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STD_SET_TRAITS_HXX diff --git a/odb/std-unordered-map-traits.hxx b/odb/std-unordered-map-traits.hxx index 584f3ef..461eb06 100644 --- a/odb/std-unordered-map-traits.hxx +++ b/odb/std-unordered-map-traits.hxx @@ -1,5 +1,4 @@ // file : odb/std-unordered-map-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STD_UNORDERED_MAP_TRAITS_HXX diff --git a/odb/std-unordered-set-traits.hxx b/odb/std-unordered-set-traits.hxx index e8a2203..f590665 100644 --- a/odb/std-unordered-set-traits.hxx +++ b/odb/std-unordered-set-traits.hxx @@ -1,5 +1,4 @@ // file : odb/std-unordered-set-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STD_UNORDERED_SET_TRAITS_HXX diff --git a/odb/std-vector-traits.hxx b/odb/std-vector-traits.hxx index af047db..c6bb39e 100644 --- a/odb/std-vector-traits.hxx +++ b/odb/std-vector-traits.hxx @@ -1,5 +1,4 @@ // file : odb/std-vector-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_STD_VECTOR_TRAITS_HXX diff --git a/odb/tr1/lazy-pointer-traits.hxx b/odb/tr1/lazy-pointer-traits.hxx index fc2e0f2..7adf957 100644 --- a/odb/tr1/lazy-pointer-traits.hxx +++ b/odb/tr1/lazy-pointer-traits.hxx @@ -1,5 +1,4 @@ // file : odb/tr1/lazy-pointer-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_TR1_LAZY_POINTER_TRAITS_HXX diff --git a/odb/tr1/lazy-ptr.hxx b/odb/tr1/lazy-ptr.hxx index 8954d78..b4946ec 100644 --- a/odb/tr1/lazy-ptr.hxx +++ b/odb/tr1/lazy-ptr.hxx @@ -1,5 +1,4 @@ // file : odb/tr1/lazy-ptr.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_TR1_LAZY_PTR_HXX diff --git a/odb/tr1/lazy-ptr.ixx b/odb/tr1/lazy-ptr.ixx index 06b0d38..dc5000f 100644 --- a/odb/tr1/lazy-ptr.ixx +++ b/odb/tr1/lazy-ptr.ixx @@ -1,5 +1,4 @@ // file : odb/tr1/lazy-ptr.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/tr1/lazy-ptr.txx b/odb/tr1/lazy-ptr.txx index 9b5e63a..7e36cd9 100644 --- a/odb/tr1/lazy-ptr.txx +++ b/odb/tr1/lazy-ptr.txx @@ -1,5 +1,4 @@ // file : odb/tr1/lazy-ptr.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/tr1/memory.hxx b/odb/tr1/memory.hxx index 3325e2f..b9e9f45 100644 --- a/odb/tr1/memory.hxx +++ b/odb/tr1/memory.hxx @@ -1,5 +1,4 @@ // file : odb/tr1/memory.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_TR1_MEMORY_HXX diff --git a/odb/tr1/pointer-traits.hxx b/odb/tr1/pointer-traits.hxx index f2295f7..df4f25f 100644 --- a/odb/tr1/pointer-traits.hxx +++ b/odb/tr1/pointer-traits.hxx @@ -1,5 +1,4 @@ // file : odb/tr1/pointer-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_TR1_POINTER_TRAITS_HXX diff --git a/odb/tr1/wrapper-traits.hxx b/odb/tr1/wrapper-traits.hxx index 6e69152..f878ef6 100644 --- a/odb/tr1/wrapper-traits.hxx +++ b/odb/tr1/wrapper-traits.hxx @@ -1,5 +1,4 @@ // file : odb/tr1/wrapper-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_TR1_WRAPPER_TRAITS_HXX diff --git a/odb/tracer.cxx b/odb/tracer.cxx index 8a09afc..1e636a7 100644 --- a/odb/tracer.cxx +++ b/odb/tracer.cxx @@ -1,5 +1,4 @@ // file : odb/tracer.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <iostream> diff --git a/odb/tracer.hxx b/odb/tracer.hxx index 5263116..11e4e76 100644 --- a/odb/tracer.hxx +++ b/odb/tracer.hxx @@ -1,5 +1,4 @@ // file : odb/tracer.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_TRACER_HXX diff --git a/odb/traits.hxx b/odb/traits.hxx index 06e7ab6..2c6f5d6 100644 --- a/odb/traits.hxx +++ b/odb/traits.hxx @@ -1,5 +1,4 @@ // file : odb/traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_TRAITS_HXX @@ -72,6 +71,14 @@ namespace odb typedef T value_type; typedef P pointer_type; + + // Suppress bogus use-after-free introduced in GCC 12 (GCC bug #105327). + // +#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 12 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuse-after-free" +#endif + static P create () { @@ -82,6 +89,10 @@ namespace odb return p; } +#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 12 +#pragma GCC diagnostic pop +#endif + private: struct mem_guard { diff --git a/odb/transaction.cxx b/odb/transaction.cxx index 6002783..f75cf32 100644 --- a/odb/transaction.cxx +++ b/odb/transaction.cxx @@ -1,5 +1,4 @@ // file : odb/transaction.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/transaction.hxx> @@ -95,7 +94,7 @@ namespace odb finalized_ = true; rollback_guard rg (*this); - impl_->connection ().transaction_tracer_ = 0; + impl_->tracer (0); if (tls_get (current_transaction) == this) { @@ -119,7 +118,7 @@ namespace odb finalized_ = true; rollback_guard rg (*this); - impl_->connection ().transaction_tracer_ = 0; + impl_->tracer (0); if (tls_get (current_transaction) == this) { @@ -332,4 +331,26 @@ namespace odb ~transaction_impl () { } + + connection& transaction_impl:: + connection (database_type* db) + { + assert (db == 0 || db == &database_); + return *connection_; + } + + // The transaction-specific tracer is stored in the connection. See the + // connection class for the reason. + // + void transaction_impl:: + tracer (tracer_type* t) + { + connection_->transaction_tracer_ = t; + } + + tracer* transaction_impl:: + tracer () const + { + return connection_->transaction_tracer_; + } } diff --git a/odb/transaction.hxx b/odb/transaction.hxx index 820ed8f..1958df3 100644 --- a/odb/transaction.hxx +++ b/odb/transaction.hxx @@ -1,5 +1,4 @@ // file : odb/transaction.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_TRANSACTION_HXX @@ -62,9 +61,17 @@ namespace odb // Return the connection this transaction is on. // + // The second version verifies the connection is to the specified + // database. For database implementations that support attaching multiple + // databases it may also select the connection corresponding to the + // specified database. + // connection_type& connection (); + connection_type& + connection (database_type&); + bool finalized () const {return finalized_;} @@ -216,6 +223,7 @@ namespace odb class LIBODB_EXPORT transaction_impl { public: + typedef odb::tracer tracer_type; typedef odb::database database_type; typedef odb::connection connection_type; @@ -237,11 +245,14 @@ namespace odb return database_; } - connection_type& - connection () - { - return *connection_; - } + virtual connection_type& + connection (database_type*); + + virtual void + tracer (tracer_type*); + + virtual tracer_type* + tracer () const; protected: transaction_impl (database_type& db) diff --git a/odb/transaction.ixx b/odb/transaction.ixx index 50734a3..cc1ce5e 100644 --- a/odb/transaction.ixx +++ b/odb/transaction.ixx @@ -1,5 +1,4 @@ // file : odb/transaction.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/connection.hxx> @@ -34,7 +33,13 @@ namespace odb inline transaction::connection_type& transaction:: connection () { - return impl_->connection (); + return impl_->connection (0); + } + + inline transaction::connection_type& transaction:: + connection (database_type& db) + { + return impl_->connection (&db); } inline transaction_impl& transaction:: @@ -43,24 +48,21 @@ namespace odb return *impl_; } - // The transaction-specific tracer is stored in the connection. See - // the connection class for the reason. - // inline void transaction:: tracer (tracer_type& t) { - impl_->connection ().transaction_tracer_ = &t; + impl_->tracer (&t); } inline void transaction:: tracer (tracer_type* t) { - impl_->connection ().transaction_tracer_ = t; + impl_->tracer (t); } inline transaction::tracer_type* transaction:: tracer () const { - return impl_->connection ().transaction_tracer_; + return impl_->tracer (); } } diff --git a/odb/vector-impl.cxx b/odb/vector-impl.cxx index 25d1ad5..ca30f8d 100644 --- a/odb/vector-impl.cxx +++ b/odb/vector-impl.cxx @@ -1,5 +1,4 @@ // file : odb/vector-impl.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/vector-impl.hxx> diff --git a/odb/vector-impl.hxx b/odb/vector-impl.hxx index 826f278..9f2ea7c 100644 --- a/odb/vector-impl.hxx +++ b/odb/vector-impl.hxx @@ -1,5 +1,4 @@ // file : odb/vector-impl.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_VECTOR_IMPL_HXX @@ -46,7 +45,7 @@ namespace odb vector_impl (const vector_impl&); #ifdef ODB_CXX11 - vector_impl (vector_impl&&); + vector_impl (vector_impl&&) noexcept; #endif void @@ -196,7 +195,7 @@ namespace odb vector_base (const vector_base&); #ifdef ODB_CXX11 - vector_base (vector_base&&); + vector_base (vector_base&&) noexcept; #endif void diff --git a/odb/vector-impl.ixx b/odb/vector-impl.ixx index 941fa55..21999d5 100644 --- a/odb/vector-impl.ixx +++ b/odb/vector-impl.ixx @@ -1,5 +1,4 @@ // file : odb/vector-impl.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifdef ODB_CXX11 @@ -19,9 +18,19 @@ namespace odb { } + inline void vector_impl:: + swap (vector_impl& x) + { + std::swap (state_, x.state_); + std::swap (size_, x.size_); + std::swap (tail_, x.tail_); + std::swap (capacity_, x.capacity_); + std::swap (data_, x.data_); + } + #ifdef ODB_CXX11 inline vector_impl:: - vector_impl (vector_impl&& x) + vector_impl (vector_impl&& x) noexcept : state_ (state_not_tracking), size_ (0), tail_ (0), capacity_ (0), data_ (0) { @@ -37,16 +46,6 @@ namespace odb } inline void vector_impl:: - swap (vector_impl& x) - { - std::swap (state_, x.state_); - std::swap (size_, x.size_); - std::swap (tail_, x.tail_); - std::swap (capacity_, x.capacity_); - std::swap (data_, x.data_); - } - - inline void vector_impl:: reserve (std::size_t n) { if (n > capacity_) @@ -147,6 +146,17 @@ namespace odb inline vector_base:: vector_base (): tran_ (0) {} + inline void vector_base:: + _arm (transaction& t) const + { + tran_ = &t; + t.callback_register (&rollback, + const_cast<vector_base*> (this), + transaction::event_rollback, + 0, + &tran_); + } + inline vector_base:: vector_base (const vector_base& x) : impl_ (x.impl_), tran_ (0) @@ -168,12 +178,19 @@ namespace odb #ifdef ODB_CXX11 inline vector_base:: - vector_base (vector_base&& x) + vector_base (vector_base&& x) noexcept : impl_ (std::move (x.impl_)), tran_ (0) { if (x.tran_ != 0) { x.tran_->callback_unregister (&x); + + // Note that _arm() can potentially throw bad_alloc while adding a new + // callback to the callbacks list of the transaction object. However, we + // assume that this will not happen since the new callback should be + // saved into an existing slot, freed by the above callback_unregister() + // call. + // _arm (*x.tran_); } } @@ -190,15 +207,4 @@ namespace odb { return impl_.tracking (); } - - inline void vector_base:: - _arm (transaction& t) const - { - tran_ = &t; - t.callback_register (&rollback, - const_cast<vector_base*> (this), - transaction::event_rollback, - 0, - &tran_); - } } diff --git a/odb/vector-traits.hxx b/odb/vector-traits.hxx index 59d0095..5e6cf14 100644 --- a/odb/vector-traits.hxx +++ b/odb/vector-traits.hxx @@ -1,5 +1,4 @@ // file : odb/vector-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_VECTOR_TRAITS_HXX diff --git a/odb/vector-traits.txx b/odb/vector-traits.txx index 9568212..6c33876 100644 --- a/odb/vector-traits.txx +++ b/odb/vector-traits.txx @@ -1,5 +1,4 @@ // file : odb/vector-traits.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/vector.hxx b/odb/vector.hxx index f388ad6..3fe7d8a 100644 --- a/odb/vector.hxx +++ b/odb/vector.hxx @@ -1,5 +1,4 @@ // file : odb/vector.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_VECTOR_HXX @@ -92,10 +91,16 @@ namespace odb {return v_.get_allocator ();} #ifdef ODB_CXX11 - vector(vector&& x): vector_base (std::move (x)), v_ (std::move (x.v_)) {} + vector(vector&& x) noexcept + : vector_base (std::move (x)), v_ (std::move (x.v_)) {} + vector(const vector& x, const A& a): vector_base (x), v_ (x.v_, a) {} vector(vector&& x, const A& a) : vector_base (std::move (x)), v_ (std::move (x.v_), a) {} + + // Note: noexcept is not specified since it can throw while reallocating + // impl_. + // vector& operator=(vector&&); #ifdef ODB_CXX11_INITIALIZER_LIST vector(std::initializer_list<T> il, const A& a = A()): v_ (il, a) {} diff --git a/odb/vector.ixx b/odb/vector.ixx index ebb45d6..230b187 100644 --- a/odb/vector.ixx +++ b/odb/vector.ixx @@ -1,5 +1,4 @@ // file : odb/vector.ixx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/version-build2-stub.hxx b/odb/version-build2-stub.hxx index 8008361..f4c7937 100644 --- a/odb/version-build2-stub.hxx +++ b/odb/version-build2-stub.hxx @@ -1,5 +1,4 @@ // file : odb/version-build2-stub.hxx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include <odb/version.hxx> diff --git a/odb/version-build2.hxx.in b/odb/version-build2.hxx.in index 57b37c3..3672585 100644 --- a/odb/version-build2.hxx.in +++ b/odb/version-build2.hxx.in @@ -1,12 +1,11 @@ // file : odb/version-build2.hxx.in -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef LIBODB_VERSION // Note: using the version macro itself. // For the ODB compiler (temporary). // -#define ODB_VERSION 20468 +#define ODB_VERSION 20476 // The numeric version format is AAAAABBBBBCCCCCDDDE where: // diff --git a/odb/version.hxx b/odb/version.hxx index 86618e0..4961e1a 100644 --- a/odb/version.hxx +++ b/odb/version.hxx @@ -1,5 +1,4 @@ // file : odb/version.hxx -// copyright : Copyright (c) 2005-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifdef LIBODB_BUILD2 @@ -30,13 +29,13 @@ // ODB interface version: minor, major, and alpha/beta versions. // -#define ODB_VERSION 20468 -#define ODB_VERSION_STR "2.5-b.18" +#define ODB_VERSION 20476 +#define ODB_VERSION_STR "2.5-b.26" // libodb version: interface version plus the bugfix version. // -#define LIBODB_VERSION 2049968 -#define LIBODB_VERSION_STR "2.5.0-b.18" +#define LIBODB_VERSION 2049976 +#define LIBODB_VERSION_STR "2.5.0-b.26" #include <odb/post.hxx> diff --git a/odb/view-image.hxx b/odb/view-image.hxx index 162e3c3..51f7cc0 100644 --- a/odb/view-image.hxx +++ b/odb/view-image.hxx @@ -1,5 +1,4 @@ // file : odb/view-image.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_VIEW_IMAGE_HXX diff --git a/odb/view-result.hxx b/odb/view-result.hxx index d00317d..601c3b4 100644 --- a/odb/view-result.hxx +++ b/odb/view-result.hxx @@ -1,5 +1,4 @@ // file : odb/view-result.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_VIEW_RESULT_HXX diff --git a/odb/view-result.txx b/odb/view-result.txx index ba997f5..5c62253 100644 --- a/odb/view-result.txx +++ b/odb/view-result.txx @@ -1,5 +1,4 @@ // file : odb/view-result.txx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb diff --git a/odb/wrapper-traits.hxx b/odb/wrapper-traits.hxx index 20eea69..d31425d 100644 --- a/odb/wrapper-traits.hxx +++ b/odb/wrapper-traits.hxx @@ -1,5 +1,4 @@ // file : odb/wrapper-traits.hxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_WRAPPER_TRAITS_HXX diff --git a/tests/basics/buildfile b/tests/basics/buildfile index dcfb292..d568216 100644 --- a/tests/basics/buildfile +++ b/tests/basics/buildfile @@ -1,5 +1,4 @@ # file : tests/basics/buildfile -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file import libs = libodb%lib{odb} diff --git a/tests/basics/driver.cxx b/tests/basics/driver.cxx index a44e8e8..57cec1c 100644 --- a/tests/basics/driver.cxx +++ b/tests/basics/driver.cxx @@ -1,5 +1,4 @@ // file : tests/basics/driver.cxx -// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file // Basic test to make sure the library is usable. Functionality testing diff --git a/tests/build/bootstrap.build b/tests/build/bootstrap.build index c5c067b..6ee38db 100644 --- a/tests/build/bootstrap.build +++ b/tests/build/bootstrap.build @@ -1,5 +1,4 @@ # file : tests/build/bootstrap.build -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file project = # Unnamed subproject. diff --git a/tests/build/root.build b/tests/build/root.build index da6ff40..6c5a90b 100644 --- a/tests/build/root.build +++ b/tests/build/root.build @@ -1,5 +1,4 @@ # file : tests/build/root.build -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file cxx.std = latest diff --git a/tests/buildfile b/tests/buildfile index 3614001..57588a4 100644 --- a/tests/buildfile +++ b/tests/buildfile @@ -1,5 +1,4 @@ # file : tests/buildfile -# copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC # license : GNU GPL v2; see accompanying LICENSE file ./: {*/ -build/} diff --git a/version b/version deleted file mode 100644 index a9b5191..0000000 --- a/version +++ /dev/null @@ -1 +0,0 @@ -2.5.0-b.18 diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..6bc2f39 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +2.5.0-b.26 |