/* @(#) $Revision: 4.2 $ $Source: /judy/src/funcs/Judy1Dup.c $ */ #include "Judy.h" /******************************************************************* * Name: Judy1Dup * * Description: * Clone (duplicate) a Judy Array. * * Parameters: * PPvoid_t PPDest (OUT) * Pointer to a new Judy array with the same * index/value pairs as PSource. * Any initial value pointed to by PPDest is ignored. * * Pvoid_t PSource (IN) * Ptr to source Judy array being duplicated. * If PSource is NULL, TRUE is returned since this * is simply a valid Null Judy array. * * JError_t *PJError (OUT) * Judy error structure pointer. * * Returns: * JERR - error, see PJError * !JERR - success */ int Judy1Dup(PPvoid_t PPDest, Pvoid_t PSource, JError_t * PJError) { Pvoid_t newJArray = 0; // new Judy1 array to ppopulate Word_t kindex; // Key/index int Ins_rv = 0; // Insert return value for (kindex = 0L, Ins_rv = Judy1First(PSource, &kindex, PJError); Ins_rv == 1; Ins_rv = Judy1Next(PSource, &kindex, PJError)) { Ins_rv = Judy1Set(&newJArray, kindex, PJError); } if (Ins_rv == JERR) return Ins_rv; *PPDest = newJArray; return Ins_rv; } /* Judy1Dup */