public virtual void dealloc(IOrganismo o) { //Log.Info("Dealloc: " + o.oid); if (o == null) { return; } organismos.Remove(o); referView.RemoveOrganismo(o); organismosMap.Remove(o.id); if (o.child != null) { dealloc(o.child); } o.clearChild(); killCount++; o.kill(); if (!recycleBin.Contains(o)) { recycleBin.Add(o); } else { Log.error("Program is already present on the recycle bin: " + o.oid); } cpu().deallocate(o); allocated.Remove(o); }