summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_factory.h
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2019-02-14 21:34:30 +0100
committer couriersud <couriersud@gmx.org>2019-02-16 00:05:21 +0100
commitb113d0c26d8214b8820a152f5bc20496c564b7d3 (patch)
treec4a590b84ad26f3cd82b3c26166cd71730087114 /src/lib/netlist/nl_factory.h
parent417dab47cb633c447ba469f7b3a6460ed774422f (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.h9
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;