arena = (arenaOpt) ? arenaOpt : nssArena_Create();
PRBool i_alloced; if (arenaOpt) { arena = arenaOpt; i_alloced = PR_FALSE; } else { arena = nssArena_Create(); i_alloced = PR_TRUE; }
nssList_Create(  NSSArena *arenaOpt,  PRBool threadSafe){    NSSArena *arena;    nssList *list;    arena = (arenaOpt) ? arenaOpt : nssArena_Create();    if (!arena) {	return (nssList *)NULL;    }    list = nss_ZNEW(arena, nssList);    if (!list) {	return (nssList *)NULL;    }    if (threadSafe) {	list->lock = PZ_NewLock(nssILockOther);	if (!list->lock) {	    if (arenaOpt) {		nss_ZFreeIf(list);	    } else {		NSSArena_Destroy(arena);	    }	    return (nssList *)NULL;	}    }    if (!arenaOpt) {	list->arena = arena;    }    list->compareFunc = pointer_compare;    return list;}