Gambas-it

Gambas3 => Domande tecniche => Topic aperto da: dregi - 10 Settembre 2019, 23:28:43

Titolo: allocation non freed
Inserito da: dregi - 10 Settembre 2019, 23:28:43
gbx3: warning: 1 allocation(s) non freed.

Una allocazione non liberata. Cosa significa? Dove devo intervenire?
Titolo: Re:allocation non freed
Inserito da: vuott - 10 Settembre 2019, 23:39:21
https://www.gambas-it.org/smf/index.php?topic=2144.msg23519#msg23519
https://www.gambas-it.org/smf/index.php?topic=671.msg6951#msg6951

https://www.gambas-it.org/smf/index.php?topic=7081.msg45948#msg45948
https://www.gambas-it.org/smf/index.php?topic=4445.msg36892#msg36892
Titolo: Re:allocation non freed
Inserito da: dregi - 10 Settembre 2019, 23:57:03
E' corretto quindi chiudere il più possibile uscendo da un form?
Codice: [Seleziona]
Public f As New Funzioni
....
Public Sub Form_Close()
  f = Null
End
Titolo: Re:allocation non freed
Inserito da: vuott - 11 Settembre 2019, 00:02:24
...nell'economia/gestione della memoria si impone che un'area di memoria precedentemente allocata debba essere liberata alla fine del suo uso, affinché il sistema possa utilizzarla per altri scopi.

In Gambas l'avviso  "allocation non freed" comunica che alla chiusura del programma, uno o più aree di memoria, usate ad esempio per creare Oggetti:
Codice: [Seleziona]
Public Sub Form_Open()

End

Public Sub Button1_Click()

  Quit

End

o aree di memoria allocate arbitrariamente dal programmatore con specifica funzione:
Codice: [Seleziona]
Public Sub Main()

  Dim p As Pointer
 
  p = Alloc(SizeOf(gb.Byte), 48)

End

non sono state deallocate, liberate debitamente.
Titolo: Re:allocation non freed
Inserito da: vuott - 11 Settembre 2019, 00:09:33
E' corretto quindi chiudere il più possibile uscendo da un form?
Codice: [Seleziona]
Public f As New Funzioni
....
Public Sub Form_Close()
  f = Null
End
In questo caso, bisogna capire se è "Funzioni" in sé che genera quell'avviso, o qualcosa creato al suo interno.
Titolo: Re:allocation non freed
Inserito da: dregi - 12 Settembre 2019, 10:57:07
Ciaro. perfetto. grazie.