Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Gbx3: Warning: Circular References Detected:
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Gbx3: Warning: Circular References Detected: 
 
Tengo un programa en que dentro del evento data de la última columna de datos de un gridView introduzco imágenes para dos columnas más con los típicos Picture de editar y eliminar

Public Sub grdDatos_Data(Row As Integer, Column As Integer)
                                                       ,
                                                       ,
                                                       ,
            grdDatos[Row, 2].Picture = Picture["icon:/16/edit"]     'Botón para editar
            grdDatos[Row, 3].Picture = Picture["icon:/16/delete"]   'Botón para borrar
                                                       ,
                                                       ,
End

El objeto es que al hacer Click sobre las celdas de la rejilla que contienen estas imágenes se entre en edición o se borre el registro.

El problema es que al cerrar el programa me da este resultado en la consola

gbx3: warning: circular references detected:
gbx3:     3 GridViewSelection
gbx3:     3 _GridView_Rows
gbx3:   119 _GridView_Data
gbx3:     3 _GridView_Columns
gbx3:    12 _GridView_Column
gbx3:     3 ScrollArea
gbx3:     3 GridView
gbx3: warning: 372 allocation(s) non freed.

El resultado es el mismo si en el evento close del formulario elimino todas estas imágenes igualandolas a null una a una.

No sé qué referencias circulares se están creando ni como evitarlas ya que sólo se corrige si comento las dos líneas que crean las imágenes en la rejilla.

¿Alguna idea?

Aprovecho para felicitar a todo/as las Navidad.

Sebas
 



 
Sebas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gbx3: Warning: Circular References Detected: 
 
Esos errores son los mas dificiles de soluionar, y se refieren a memory leaks que el interprete de gambas no puede solucionar. Se deben a que en alguna parte del codigo estas creando una referencia a un objeto, sin luego destruirla antes de que finalize el programa, y para solucionarlo, hay que encontrarlo.

Si puedes, te recomiendo que suubas tu proyecto asi podemos hechrle un vistazo.
 



 
sebikul - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gbx3: Warning: Circular References Detected: 
 
sebikul escribió:  
Esos errores son los mas dificiles de soluionar, y se refieren a memory leaks que el interprete de gambas no puede solucionar. Se deben a que en alguna parte del codigo estas creando una referencia a un objeto, sin luego destruirla antes de que finalize el programa, y para solucionarlo, hay que encontrarlo.

Si puedes, te recomiendo que suubas tu proyecto asi podemos hechrle un vistazo.


Gracias por la respuesta.

Según he visto la única manera de rellenar un gridView sin que se produzca este error es utilizar el evento Data y dentro de este la propiedad Data para rellenar. En todos los casos en que he modificado mi código en este sentido se ha eliminado dicho error.
Sin embargo la documentación de gambas dice que se puede rellenar explícitamente y da este ejemplo:

'Carga de la grilla explícitamente
GridView1.Columns.Count = 4
GridView1.Rows.Count = 3
GridView1.Columns.Width = 52
GridView1.Rows[1].Height = 52
GridView1[0,0].Text = "0,0"
GridView1[0,0].Alignment = Align.Right
GridView1[1,1].Text = "1,1"
GridView1[0,1].Text = "0,1"
GridView1[1,0].Picture = Picture["image.png"]

Yo he puesto este código en un formulario para probarlo y produce el mismo error:

gbx3: warning: circular references detected:
gbx3:     1 GridViewSelection
gbx3:     1 _GridView_Rows
gbx3:     4 _GridView_Data
gbx3:     1 _GridView_Columns
gbx3:     4 _GridView_Column
gbx3:     1 ScrollArea
gbx3:     1 GridView
gbx3: warning: 47 allocation(s) non freed.

Parece que cualquier mención explícita de una celda de GridView dispara el evento Data y este genera alguna referencia al GridView ( a sí mismo) o a una parte del mismo (Columna o celda). ¿Realmente se puede rellenar de forma explícita el GridView?

¿Se te ocurre algo?

Gracias de antemano.

Sebas
 



 
Sebas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gbx3: Warning: Circular References Detected: 
 
En realidad, se puede rellenar de cualquier forma, depende de donde uno obtenga los datos cual es la forma recomendada. No debería haber ningún leak sin importar que método se use.

Lo mejor es que subas el proyecto aso puedo echarle un vistazo a todo el código, como te dije antes, este tipo de errores es muy difícil de encontrar.
 



 
sebikul - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gbx3: Warning: Circular References Detected: 
 
sebikul escribió:  
En realidad, se puede rellenar de cualquier forma, depende de donde uno obtenga los datos cual es la forma recomendada. No debería haber ningún leak sin importar que método se use.

Lo mejor es que subas el proyecto aso puedo echarle un vistazo a todo el código, como te dije antes, este tipo de errores es muy difícil de encontrar.


El proyecto que he realizado ocupa, una vez empaquetado en tar.gz, 43,5 Mb cuando lo máximo que puedo subir aquí son 150 Kb.
El problema, tal como dije en anterior mensaje, se puede ver simplemente ejecutando el código que viene en la ayuda del GridView en un formulario. Este código está en el mensaje que envié previamente y el resultado del mismo también se muestra.

Saludos y Feliz año.

Sebas
 



 
Sebas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gbx3: Warning: Circular References Detected: 
 
No he podido reproducir el problema. Si no puedes eliminar lo que no sea necesario puedes subir el proyecto en algún otro sitio, como Google Drive.
 



 
sebikul - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gbx3: Warning: Circular References Detected: 
 
sebikul escribió:  
No he podido reproducir el problema. Si no puedes eliminar lo que no sea necesario puedes subir el proyecto en algún otro sitio, como Google Drive.


Gracias sebikul. El problema parece ser un bug anterior ya que tras cargar gambas 3.4 la misma prueba no me produce error. Antes estaba usando la versión 3.1.

Saludos
 



 
Sebas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes [Solucionado] Mensaje Warning: Circular Re... gara_pm Bases de Datos 4 Lunes, 26 Diciembre 2011, 23:27 Ver último mensaje
gara_pm
No hay nuevos mensajes Gbr3 Y Gbx3 Shell General 3 Martes, 22 Enero 2019, 14:30 Ver último mensaje
Shell
No hay nuevos mensajes Un Textbox Circular? ivanovichenco Controles/Librerías/Componentes 14 Martes, 28 Diciembre 2010, 16:35 Ver último mensaje
Invitado
No hay nuevos mensajes Gbx3: Unable To Find Startup File[Solución] v3ctor General 0 Domingo, 31 Agosto 2014, 00:20 Ver último mensaje
v3ctor
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario