anchor.diff:  
   	
   
  -//If you see this proc high on the profile, what you are really seeing is the garbage collection/soft delete overhead in byond.
  -//Don't attempt to optimize, not worth the effort.
  -/datum/controller/subsystem/garbage/proc/HandlePreQueue()
  -	var/list/tobequeued = queues[GC_QUEUE_PREQUEUE]
  -	var/static/count = 0
  -	if (count)
  -		var/c = count
  -		count = 0 //so if we runtime on the Cut, we don't try again.
  -		tobequeued.Cut(1,c+1)
  -
  -	for (var/ref in tobequeued)
  -		count++
  -		Queue(ref, GC_QUEUE_PREQUEUE+1)
  -		tobequeued[count] = null
  -		if (MC_TICK_CHECK)
  -			return
  -	if (count)
  -		tobequeued.Cut(1,count+1)
  -		count = 0
   
   /datum/controller/subsystem/garbage/proc/HandleQueue(level = GC_QUEUE_CHECK)
   	if (level == GC_QUEUE_CHECK)
  
positive.code: 		queue.Cut(1,count+1)
  		count = 0
  
  /datum/controller/subsystem/garbage/proc/PreQueue(datum/D)
  	if (D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
  		queues[GC_QUEUE_PREQUEUE] += D
  		D.gc_destroyed = GC_QUEUED_FOR_QUEUING
  
  /datum/controller/subsystem/garbage/proc/Queue(datum/D, level = GC_QUEUE_CHECK)
  	if (isnull(D))
  		return
  
negative.code: 					testing("WARNING: [D.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.")
  				#endif
  				I.no_hint++
  				SSgarbage.Queue(D)
  	else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
  		CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic")
  
  