efun: deep_copy.de


SYNOPSIS:

        mixed deep_copy(mixed arg);

BESCHREIBUNG:

        Erzeugt eine echte Kopie von <arg> und liefert diese zurueck. Fuer
        Arrays und Mappings bedeutet dies, dass ein neues Array oder Mapping
        erzeugt wird, das exakte Kopien der Eintraege des Originals enthaelt.
        Eingebettete Arrays und Mappings werden ebenso echt kopiert.

        Fuer andere Typen als Mappings und Arrays bewirkt diese Funktion
        nichts.

        Wenn im Driver DYNAMIC_COST definiert ist, zaehlt jedes eingebettete
        Mapping oder Array zu den Evaluationskosten sowohl in der Groesse als
        auch in der Einbettungstiefe.

BEISPIEL:

        mixed *a, *b;
        a = ({ 1, ({ 21, 22 }) });
        b = deep_copy(a);
        a[0] = -1; a[1][0] = -21;
         --> a ist jetzt   ({ -1, ({ -21, 22 }) })
             b bleibt      ({  1, ({  21, 22 }) })

AENDERUNGEN:

        Eingefuehrt in LDMud 3.2.6.
        LDMud 3.2.9 fuegte die dynamischen Kosten zur Efun hinzu.

UNItopia (mudadm@UNItopia.de)