From b13d0b81aedaa74ab7174cb7b7aee8536b4c8b78 Mon Sep 17 00:00:00 2001 From: twanvl Date: Thu, 12 Oct 2006 17:08:02 +0000 Subject: [PATCH] Fixed a nasty order of destruction bug, where the memory pool for ScriptInts was destroyed before the PackageManager git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@20 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/data/field.cpp | 4 +- src/main.cpp | 3 ++ src/script/scriptable.cpp | 57 +++++++++++++++++++++ src/script/scriptable.hpp | 89 +++++++++++++++++++++++++++++++++ src/script/value.cpp | 50 +++++++++++++++--- src/script/value.hpp | 29 +++++++---- src/util/error.hpp | 8 +++ src/util/io/get_member.cpp | 6 +-- src/util/io/get_member.hpp | 3 ++ src/util/io/package.cpp | 8 +-- src/util/io/package_manager.cpp | 18 ++++--- src/util/io/package_manager.hpp | 13 +++-- src/util/smart_ptr.hpp | 10 ++-- 13 files changed, 257 insertions(+), 41 deletions(-) create mode 100644 src/script/scriptable.cpp create mode 100644 src/script/scriptable.hpp diff --git a/src/data/field.cpp b/src/data/field.cpp index 50570ee5..e6b77e87 100644 --- a/src/data/field.cpp +++ b/src/data/field.cpp @@ -8,6 +8,7 @@ #include #include +#include // ----------------------------------------------------------------------------- : Field @@ -50,7 +51,8 @@ shared_ptr read_new(Reader& reader) { if (type == _("text")) { return new_shared(); } else { - throw "TODO"; + //return new_shared(); + throw ParseError(_("Unsupported field type: '") + type + _("'")); } } diff --git a/src/main.cpp b/src/main.cpp index e2d40b8e..55c225ba 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,6 +7,7 @@ // ----------------------------------------------------------------------------- : Includes #include +#include #include #include #include @@ -51,6 +52,7 @@ bool MSE::OnInit() { } catch (...) { handle_error(InternalError(_("An unexpected exception occurred, this is a bug!\nPlease save your work (use 'save as' to so you don't overwrite things),\n and restart Magic Set Editor.\n\nYou can leave a bug report on http://magicseteditor.sourceforge.net/")), false); } + packages.destroy(); return false; } @@ -58,6 +60,7 @@ bool MSE::OnInit() { int MSE::OnExit() { settings.write(); + packages.destroy(); return 0; } diff --git a/src/script/scriptable.cpp b/src/script/scriptable.cpp new file mode 100644 index 00000000..dbc3dbd6 --- /dev/null +++ b/src/script/scriptable.cpp @@ -0,0 +1,57 @@ +//+----------------------------------------------------------------------------+ +//| Description: Magic Set Editor - Program to make Magic (tm) cards | +//| Copyright: (C) 2001 - 2006 Twan van Laarhoven | +//| License: GNU General Public License 2 or later (see file COPYING) | +//+----------------------------------------------------------------------------+ + +// ----------------------------------------------------------------------------- : Includes + +#include