From c0669fb658a59fe751589f53a0bba7b6bd7efd4f Mon Sep 17 00:00:00 2001 From: twanvl Date: Sat, 28 Jun 2008 15:13:04 +0000 Subject: [PATCH] Fixed length function to work correctly for ScriptObjects, in particular for TextValues. git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1010 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/script/to_value.hpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/script/to_value.hpp b/src/script/to_value.hpp index d05d4f2a..5d2b9a02 100644 --- a/src/script/to_value.hpp +++ b/src/script/to_value.hpp @@ -266,11 +266,17 @@ class ScriptObject : public ScriptValue { } virtual ScriptValueP makeIterator(const ScriptValueP& thisP) const { ScriptValueP it = make_iterator(*value); - return it ? it : ScriptValue::makeIterator(thisP); + if (it) return it; + ScriptValueP d = getDefault(); + if (d) return d->makeIterator(d); + return ScriptValue::makeIterator(thisP); } virtual int itemCount() const { int i = item_count(*value); - return i >= 0 ? i : ScriptValue::itemCount(); + if (i >= 0) return i; + ScriptValueP d = getDefault(); + if (d) return d->itemCount(); + return ScriptValue::itemCount(); } /// Objects can be compared by comparing pointers virtual CompareWhat compareAs(String& compare_str, void const*& compare_ptr) const {