Ajude o site desativando o bloqueador de anúncio
Cabeçalho

FreeObj [AS]

Autor: Eurai Criado: 01/01/2016 Atualizado: 22/11/2025 Classe
Postagem

Descrição

FreeObj [AS] – Remove da memória a instância de um objeto 🧹🧠

 

📌 Sintaxe

FreeObj( <oObj> )

 

🔣 Parâmetros

Par Nome Tipo Descrição Default Obg Ref
01 oObj Objeto Objeto ADVPL cuja instância deverá ser eliminada da memória   X  

 

🔁 Retorno

Retorno Tipo Descrição
A função é procedural e não retorna valor.

 

🧩 Exemplo

#INCLUDE "TOTVS.CH"

User Function FreeObj()
Local oSay01 := TSay():New( 010,005,{|| "UA:" }, GetWndDefault(),,,, .F., .F., .F., .T.,,, 550,008 )

FreeObj( oSay01 )

Return( Nil )

 

📸 Resultado

freeobj_-_resultado_01

 

ℹ️ Informações adicionais

A função FreeObj() elimina imediatamente a instância de um objeto, mesmo que outras variáveis ainda referenciem esse mesmo objeto. Após a eliminação, qualquer variável que apontava para essa instância passa a conter NIL.

Se um objeto eliminado ainda for referenciado, ocorrerá o erro fatal: "Variable is not an object".

No uso normal, o Kernel do Application Server limpa objetos automaticamente quando eles saem de escopo ou são anulados (oObj := NIL). Porém, quando existem múltiplas referências ao mesmo objeto, somente a referência é perdida — não a instância.

Por isso, FreeObj() é recomendada especialmente para:

  • Objetos não-visuais
  • Classes customizadas
  • Objetos de WebServices

Assim, você força a liberação imediata da memória.

Cuidado! 🛑 Eliminar objetos visuais ainda ativos (como janelas, botões, painéis etc.) pode causar:

  • Access Violation
  • Segment Fault
  • Travamentos
  • Queda do Application Server

Use com cautela.

 


Gostou? Compartilhe com seus amigos e deixe um comentário! 😎

ASSINE A NEWSLETTER

Cadastrando...

PIX uDesenv

PIX QR Code para depósito

Clique para doar

Parceiros

Tudo em ADVPL - Blog parceiro

Blog ADVPL