src/gccode.c
/************************************************************************/
/*									*/
/*		    r e c l a i m c o d e b l o c k			*/
/*									*/
/*	Reclaim an array block that contains compiled code.  When	*/
/*	this happens, we need to decrement the reference counts for	*/
/*									*/
/*		* The frame name, which may be a string, list, etc.	*/
/*		* Any GCONSTs in the code (constants, internal fns,	*/
/*		  etc.), since they're no longer needed.		*/
/*									*/
/************************************************************************/
r e c l a i m c o d e b l o c k

Reclaim an array block that contains compiled code.  When
this happens, we need to decrement the reference counts for

The frame name, which may be a string, list, etc.
Any GCONSTs in the code (constants, internal fns,
etc.), since they're no longer needed.
r e c l a i m c o d e b l o c k Reclaim an array block that contains compiled code . When this happens we need to decrement the reference counts for The frame name which may be a string list etc . Any GCONSTs in the code ( constants internal fns etc . ) since they ' re no longer needed .
LispPTR reclaimcodeblock(LispPTR codebase) {
  struct fnhead *fnbase;
  if ((*Closure_Cache_Enabled_word != NIL) &&
      (remimplicitkeyhash(codebase, *Closure_Cache_word) != NIL)) {
    return (T);
  };
  fnbase = (struct fnhead *)Addr68k_from_LADDR(codebase);
  REC_GCLOOKUP((POINTERMASK & fnbase->framename), DELREF);
  if (fnbase->startpc != 0) map_code_pointers(codebase, DELREF);
  return (NIL);
}
LispPTR reclaimcodeblock ( LispPTR codebase ) { struct fnhead * fnbase ; if ( ( * Closure_Cache_Enabled_word != NIL ) && ( remimplicitkeyhash ( codebase , * Closure_Cache_word ) != NIL ) ) { return ( T ) ; } ; fnbase = ( struct fnhead * ) Addr68k_from_LADDR ( codebase ) ; REC_GCLOOKUP ( ( POINTERMASK & fnbase -> framename ) , DELREF ) ; if ( fnbase -> startpc != 0 ) map_code_pointers ( codebase , DELREF ) ; return ( NIL ) ; }
r e c l a i m c o d e b l o c k
r e c l a i m c o d e b l o c k