Merge pull request #6961 from Fox-McCloud/garbage-collect-stuffs

Garbage Collection and Code Cleanup
This commit is contained in:
Crazy Lemon
2017-04-01 22:58:52 -07:00
committed by GitHub
36 changed files with 231 additions and 164 deletions
+3 -1
View File
@@ -10,7 +10,9 @@
..()
/obj/item/clothing/suit/hooded/Destroy()
qdel(hood)
if(hood)
qdel(hood)
hood = null
return ..()
/obj/item/clothing/suit/hooded/proc/MakeHood()
@@ -82,7 +82,7 @@ var/global/datum/controller/process/garbage_collector/garbageCollector
#undef GC_COLLECTIONS_PER_TICK
/datum/controller/process/garbage_collector/proc/hardDel(var/datum/D)
gc_hard_del_types |= D.type
gc_hard_del_types["[D.type]"]++
D.hard_deleted = 1
if(!D.gcDestroyed)
spawn(-1)
@@ -25,9 +25,9 @@
to_chat(usr, "<span class='notice'>No hard del()'d types found.</span>")
return
to_chat(usr, "Types hard del()'d by the GC:")
to_chat(usr, "Types hard del()'d by the GC and number of times failed:")
for(var/A in gc_hard_del_types)
to_chat(usr, "[A]")
to_chat(usr, "[A] - [gc_hard_del_types[A]] times")
#ifdef TESTING
/client/var/running_find_references
+4 -1
View File
@@ -34,6 +34,9 @@
if(beaker)
qdel(beaker)
beaker = null
if(files)
qdel(files)
files = null
return ..()
/obj/machinery/biogenerator/ex_act(severity)
@@ -208,7 +211,7 @@
/obj/machinery/biogenerator/attack_hand(mob/user)
interact(user)
/obj/machinery/biogenerator/attack_ghost(mob/user)
interact(user)
+28 -9
View File
@@ -24,13 +24,26 @@
/obj/machinery/plantgenes/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/plantgenes(src)
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
component_parts += new /obj/item/weapon/circuitboard/plantgenes(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/weapon/stock_parts/scanning_module(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser(null)
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
RefreshParts()
/obj/machinery/plantgenes/Destroy()
core_genes.Cut()
reagent_genes.Cut()
trait_genes.Cut()
target = null
if(seed)
qdel(seed)
seed = null
if(disk)
qdel(disk)
disk = null
return ..()
/obj/machinery/plantgenes/RefreshParts()
rating = 0
for(var/I in component_parts)
@@ -90,7 +103,7 @@
if(..())
return
interact(user)
/obj/machinery/plantgenes/attack_ghost(mob/user)
interact(user)
@@ -282,9 +295,9 @@
repaint_seed()
if("extract")
if(disk && !disk.read_only)
disk.gene = G
if(istype(G, /datum/plant_gene/core/potency))
var/datum/plant_gene/core/gene = G
disk.gene = G.Copy()
if(istype(disk.gene, /datum/plant_gene/core/potency))
var/datum/plant_gene/core/gene = disk.gene
gene.value = min(gene.value, max_extract_pot)
disk.update_name()
qdel(seed)
@@ -370,6 +383,12 @@
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
/obj/item/weapon/disk/plantgene/Destroy()
if(gene)
qdel(gene)
gene = null
return ..()
/obj/item/weapon/disk/plantgene/attackby(obj/item/weapon/W, mob/user, params)
..()
if(istype(W, /obj/item/weapon/pen))
+5 -1
View File
@@ -39,7 +39,11 @@
transform *= TransformUsingVariable(seed.potency, 100, 0.5) //Makes the resulting produce's sprite larger or smaller based on potency!
add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/Destroy()
if(seed)
qdel(seed)
seed = null
return ..()
/obj/item/weapon/reagent_containers/food/snacks/grown/proc/add_juice()
if(reagents)
@@ -31,6 +31,11 @@
transform *= TransformUsingVariable(seed.potency, 100, 0.5)
add_juice()
/obj/item/weapon/grown/Destroy()
if(seed)
qdel(seed)
seed = null
return ..()
/obj/item/weapon/grown/attackby(obj/item/O, mob/user, params)
..()
+6
View File
@@ -68,6 +68,12 @@
for(var/reag_id in reagents_add)
genes += new /datum/plant_gene/reagent(reag_id, reagents_add[reag_id])
/obj/item/seeds/Destroy()
for(var/thing in genes)
qdel(thing)
genes.Cut()
return ..()
/obj/item/seeds/proc/Copy()
var/obj/item/seeds/S = new type(null, 1)
// Copy all the stats
@@ -48,8 +48,7 @@
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube))
var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
if(!cube.wrapped)
cube.Expand()
cube.Expand()
// Dehydrated carp
if(istype(O, /obj/item/toy/carpplushie/dehy_carp))
var/obj/item/toy/carpplushie/dehy_carp/dehy = O
+9 -9
View File
@@ -1146,11 +1146,11 @@
update()
return
/obj/structure/disposalpipe/trunk/Destroy()
if(istype(linked, /obj/structure/disposaloutlet))
var/obj/structure/disposaloutlet/O = linked
O.expel()
O.expel(animation = 0)
else if(istype(linked, /obj/machinery/disposal))
var/obj/machinery/disposal/D = linked
if(D.trunk == src)
@@ -1207,7 +1207,7 @@
playsound(loc, W.usesound, 100, 1)
to_chat(user, "<span class='notice'>Slicing the disposal pipe.</span>")
if(do_after(user, 30 * W.toolspeed, target = src))
if(!W.isOn())
if(!W.isOn())
return
welded()
else
@@ -1290,12 +1290,13 @@
// expel the contents of the holder object, then delete it
// called when the holder exits the outlet
proc/expel(var/obj/structure/disposalholder/H)
proc/expel(var/obj/structure/disposalholder/H, animation = 1)
flick("outlet-open", src)
playsound(src, 'sound/machines/warning-buzzer.ogg', 50, 0, 0)
sleep(20) //wait until correct animation frame
playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0)
if(animation)
flick("outlet-open", src)
playsound(src, 'sound/machines/warning-buzzer.ogg', 50, 0, 0)
sleep(20) //wait until correct animation frame
playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0)
if(H)
for(var/atom/movable/AM in H)
@@ -1308,7 +1309,6 @@
H.vent_gas(src.loc)
qdel(H)
return
attackby(var/obj/item/I, var/mob/user, params)
if(!I || !user)
+6
View File
@@ -19,6 +19,12 @@
dir = EAST
/obj/structure/spacepod_frame/Destroy()
if(construct)
qdel(construct)
construct = null
return ..()
/obj/structure/spacepod_frame/attackby(obj/item/W as obj, mob/user as mob, params)
if(!construct || !construct.action(W, user))
..()