SYNOPSIS mixed deep_copy(mixed arg) DESCRIPTION Create a deep copy of and return it. For arrays, mappings, structs and lightweight objects this means that a new array, mapping, struct resp. lightweight object is created with copies of the original content. Embedded arrays, mappings, structs or lightweight objects are truly copied, too. For other values this function is a no-op. If a lightweight objects was copied, the H_CREATE_LWOBJECT_COPY hook will be called to finish initialization of the lightweight object. If DYNAMIC_COST is defined, every nested array, mapping, struct and lightweight objects counts towards the evaluation cost in both size and nesting depth. EXAMPLES mixed *a, *b; a = ({ 1, ({ 21, 22 }) }); b = deep_copy(a); a[0] = -1; a[1][0] = -21; --> a is now ({ -1, ({ -21, 22 }) }) b is still ({ 1, ({ 21, 22 }) }) HISTORY Introduced in LDMud 3.2.6. LDMud 3.2.9 added the dynamic cost to the efun. SEE ALSO copy(E)