mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-17 19:14:15 +01:00
Make GC'd objects super invisible to help unreference them more.
qdel() and clear contents of things when they themselves are qdel() Forgot to add the gc_cost to the total cost of the MC.
This commit is contained in:
@@ -45,6 +45,7 @@ var/list/uncollectable_vars=list(
|
||||
continue
|
||||
// testing("GC: Unsetting [vname] in [A.type]")
|
||||
A.vars[vname] = null
|
||||
A.invisibility = 101 // Idea by ChuckTheSheep to make the object even more unreferencable
|
||||
// testing("GC: Pop([A.type]) - destroyed\[\ref[A]\] = [A.gc_destroyed] current time: [world.timeofday]")
|
||||
destroyed["\ref[A]"] = A.gc_destroyed
|
||||
queue.Cut(1, 2)
|
||||
@@ -79,6 +80,7 @@ var/list/uncollectable_vars=list(
|
||||
// else
|
||||
// testing("GC: [refID] properly GC'd at [world.timeofday] with timeout [GCd_at_time]")
|
||||
destroyed.Cut(i, ++i) // also increases i in general
|
||||
|
||||
/**
|
||||
* NEVER USE THIS FOR ANYTHING OTHER THAN /atom/movable
|
||||
* OTHER TYPES CANNOT BE QDEL'D BECAUSE THEIR LOC IS LOCKED OR THEY DON'T HAVE ONE.
|
||||
|
||||
@@ -208,7 +208,7 @@ datum/controller/game_controller/proc/process()
|
||||
gc_cost = (world.timeofday - timer) / 10
|
||||
|
||||
//TIMING
|
||||
total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + nano_cost + events_cost + ticker_cost
|
||||
total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + nano_cost + events_cost + ticker_cost + gc_cost
|
||||
|
||||
var/end_time = world.timeofday
|
||||
if(end_time < start_time)
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
// Also called on del()
|
||||
/atom/proc/Destroy()
|
||||
gc_destroyed = world.timeofday
|
||||
for(var/atom/movable/AM in contents)
|
||||
qdel(AM)
|
||||
if(reagents)
|
||||
reagents.delete()
|
||||
del(reagents) // Technically I think the reagent holder will gc, but let's be careful here and delete all the reagents and the holder too
|
||||
|
||||
Reference in New Issue
Block a user