diff --git a/src/as/com/threerings/util/ObjectMarshaller.as b/src/as/com/threerings/util/ObjectMarshaller.as index c30e04282..86a663c0b 100644 --- a/src/as/com/threerings/util/ObjectMarshaller.as +++ b/src/as/com/threerings/util/ObjectMarshaller.as @@ -29,6 +29,7 @@ import flash.geom.Rectangle; import flash.system.ApplicationDomain; import flash.utils.ByteArray; +import flash.utils.Dictionary; import flash.utils.Endian; import flash.utils.IExternalizable; import flash.utils.getQualifiedSuperclassName; // function import @@ -146,6 +147,20 @@ public class ObjectMarshaller } // then, continue on with the sub-properties check (below) + } else if (value is Dictionary) { + if (ClassUtil.getClassName(value) != "flash.utils.Dictionary") { + return "Custom Dictionary subclasses are not supported"; + } + // check all the keys + for (var key :* in value) { + var se :String = getValidationError(key); + if (se != null) { + return se; + } + } + // then, continue on with sub-property check (below) + + } else { var type :String = typeof(value); if (type == "number" || type == "string" || type == "boolean" ) {