default smart pointer type switched to intrusive_ptr

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@337 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2007-05-11 21:34:53 +00:00
parent 3b6743b110
commit 33fd2b5e18
103 changed files with 368 additions and 256 deletions
+6 -6
View File
@@ -53,24 +53,24 @@ Image render_symbol(const SymbolP& symbol, const SymbolFilter& filter, double bo
// ----------------------------------------------------------------------------- : SymbolFilter
IMPLEMENT_REFLECTION(SymbolFilter) {
IMPLEMENT_REFLECTION_NO_SCRIPT(SymbolFilter) {
REFLECT_IF_NOT_READING {
String fill_type = fillType();
REFLECT(fill_type);
}
}
template <> void GetMember::handle(const shared_ptr<SymbolFilter>& f) {
template <> void GetMember::handle(const intrusive_ptr<SymbolFilter>& f) {
handle(*f);
}
template <>
shared_ptr<SymbolFilter> read_new<SymbolFilter>(Reader& reader) {
intrusive_ptr<SymbolFilter> read_new<SymbolFilter>(Reader& reader) {
// there must be a fill type specified
String fill_type;
reader.handle(_("fill type"), fill_type);
if (fill_type == _("solid")) return new_shared<SolidFillSymbolFilter>();
else if (fill_type == _("linear gradient")) return new_shared<LinearGradientSymbolFilter>();
else if (fill_type == _("radial gradient")) return new_shared<RadialGradientSymbolFilter>();
if (fill_type == _("solid")) return new_intrusive<SolidFillSymbolFilter>();
else if (fill_type == _("linear gradient")) return new_intrusive<LinearGradientSymbolFilter>();
else if (fill_type == _("radial gradient")) return new_intrusive<RadialGradientSymbolFilter>();
else {
throw ParseError(_ERROR_1_("unsupported fill type", fill_type));
}
+2 -2
View File
@@ -46,7 +46,7 @@ enum SymbolSet
// ----------------------------------------------------------------------------- : SymbolFilter
/// Base class for symbol filters
class SymbolFilter {
class SymbolFilter : public IntrusivePtrVirtualBase {
public:
virtual ~SymbolFilter() {}
/// What color should the symbol have at location (x, y)?
@@ -59,7 +59,7 @@ class SymbolFilter {
};
template <>
shared_ptr<SymbolFilter> read_new<SymbolFilter>(Reader& reader);
intrusive_ptr<SymbolFilter> read_new<SymbolFilter>(Reader& reader);
// ----------------------------------------------------------------------------- : SymbolFilter types