Ver Mensaje Individual
  #3  
Antiguo 26-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo no estaría tan seguro de que sea un comportamiento normal. Casi me atrevo a asegurar que no es así. oAdd.Free ciertamente destruye el objeto pero no elimina la referencia de la lista; es decir, la lista debería tener el mismo número de elementos aunque uno de ellos ya no sea un objeto válido.

De cualquier forma, lo cierto es que el uso del Free sobra aquí. oAdd no se usa para construir un objeto sino simplemente para tener una referencia a uno ya existente: oPerson.Addresses.Item[ind].

Dicho de otra manera, oAdd y oPerson.Addresses.Item[ind] apuntan al mismo objeto. Si se destruye oAdd se destruye también oPerson.Addresses.Item[ind] (pues es el mismo) y dudo que tal sea la intención.

// Saludos
Responder Con Cita