diff options
author | 2019-02-14 21:34:30 +0100 | |
---|---|---|
committer | 2019-02-16 00:05:21 +0100 | |
commit | b113d0c26d8214b8820a152f5bc20496c564b7d3 (patch) | |
tree | c4a590b84ad26f3cd82b3c26166cd71730087114 /src/lib/netlist/nl_factory.h | |
parent | 417dab47cb633c447ba469f7b3a6460ed774422f (diff) |
netlist: memory pool now supports aligned storage. (nw)
Set USE_MEMPOOL to 1 to try this (max 5% performance increase).
For mingw, there is no alignment support. This triggers -Wattribute
errors which due to -Werror crash the build.
Diffstat (limited to 'src/lib/netlist/nl_factory.h')
-rw-r--r-- | src/lib/netlist/nl_factory.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/netlist/nl_factory.h b/src/lib/netlist/nl_factory.h index aca31d4c649..533ad4452f2 100644 --- a/src/lib/netlist/nl_factory.h +++ b/src/lib/netlist/nl_factory.h @@ -13,6 +13,7 @@ #include "plib/palloc.h" #include "plib/ptypes.h" +#include "netlist_types.h" #define NETLIB_DEVICE_IMPL_ALIAS(p_alias, chip, p_name, p_def_param) \ NETLIB_DEVICE_IMPL_BASE(devices, p_alias, chip, p_name, p_def_param) \ @@ -53,7 +54,7 @@ namespace factory { COPYASSIGNMOVE(element_t, default) - virtual plib::owned_ptr<device_t> Create(netlist_state_t &anetlist, const pstring &name) = 0; + virtual poolptr<device_t> Create(netlist_state_t &anetlist, const pstring &name) = 0; virtual void macro_actions(netlist_state_t &anetlist, const pstring &name) { plib::unused_var(anetlist); @@ -83,9 +84,9 @@ namespace factory { const pstring &def_param, const pstring &sourcefile) : element_t(name, classname, def_param, sourcefile) { } - plib::owned_ptr<device_t> Create(netlist_state_t &anetlist, const pstring &name) override + poolptr<device_t> Create(netlist_state_t &anetlist, const pstring &name) override { - return plib::owned_ptr<device_t>::Create<C>(anetlist, name); + return pool().make_poolptr<C>(anetlist, name); } }; @@ -147,7 +148,7 @@ namespace factory { plib::unused_var(setup); } - plib::owned_ptr<device_t> Create(netlist_state_t &anetlist, const pstring &name) override; + poolptr<device_t> Create(netlist_state_t &anetlist, const pstring &name) override; void macro_actions(netlist_state_t &anetlist, const pstring &name) override; |