mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
[MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026 fixes https://github.com/Bubberstation/Bubberstation/issues/5549 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: loganuk <fakeemail123@aol.com> Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com> Co-authored-by: Isratosh <Isratosh@hotmail.com> Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com> Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com> Co-authored-by: Alexander V. <volas@ya.ru> Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com> Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com> Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com> Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com> Co-authored-by: Josh <josh.adam.powell@gmail.com> Co-authored-by: Josh Powell <josh.powell@softwire.com> Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com> Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com> Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
This commit is contained in:
co-authored by
tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
ArcaneMusic
MrMelbert
Rhials
rageguy505
LemonInTheDark
John Willard
Aliceee2ch
Time-Green
Tsar-Salat
SmArtKar
Maxipat
SyncIt21
deltanedas
SimplyLogan
loganuk
Leland Kemble
FalloutFalcon
Roxy
Lucy
siliconOpossum
Isratosh
TheRyeGuyWhoWillNowDie
Neocloudy
Alexander V.
ElGitificador
Twaticus
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bloop
Cameron Lennox
Tim
Iamgoofball
Layzu666
Arturlang
_0Steven
mrmanlikesbt
Ben10Omintrix
John F. Kennedy
Cursor
Josh
Josh Powell
Yobrocharlie
Hardly3D
shayoki
LT3
parent
d1f6ed3137
commit
21b4095dfd
@@ -1,6 +1,65 @@
|
||||
#ifdef REFERENCE_TRACKING
|
||||
#define REFSEARCH_RECURSE_LIMIT 64
|
||||
|
||||
#ifdef FAST_REFERENCE_TRACKING
|
||||
// typecache of types that almost certainly have no refs, and thus can be safely skipped when finding references
|
||||
GLOBAL_ALIST_INIT(reftracker_skip_typecache, init_reftracker_skip_typecache())
|
||||
// empty alist we swap with GLOB.reftracker_skip_typecache whenever someone calls toggle_fast_reftracking
|
||||
GLOBAL_ALIST_EMPTY(reftracker_skip_typecache_b)
|
||||
|
||||
/proc/toggle_fast_reftracking()
|
||||
var/alist/a = GLOB.reftracker_skip_typecache
|
||||
var/alist/b = GLOB.reftracker_skip_typecache_b
|
||||
GLOB.reftracker_skip_typecache = b
|
||||
GLOB.reftracker_skip_typecache_b = a
|
||||
|
||||
/proc/init_reftracker_skip_typecache()
|
||||
. = alist()
|
||||
for(var/base_type in list(
|
||||
/icon,
|
||||
/matrix,
|
||||
/regex,
|
||||
/atom/movable/mirage_holder,
|
||||
/atom/movable/render_step/emissive_blocker,
|
||||
/datum/armor,
|
||||
/datum/asset_cache_item,
|
||||
/datum/book_info,
|
||||
/datum/card,
|
||||
/datum/chat_payload,
|
||||
/datum/comm_log_entry,
|
||||
/datum/gas_mixture,
|
||||
/datum/greyscale_layer,
|
||||
/datum/icon_transformer,
|
||||
/datum/instrument_key,
|
||||
/datum/lighting_object, // only contains turf and MA refs
|
||||
/datum/movespeed_modifier,
|
||||
/datum/painting,
|
||||
/datum/paper_input,
|
||||
/datum/physiology,
|
||||
/datum/plant_gene/reagent,
|
||||
/datum/qdel_item,
|
||||
/datum/stack_recipe,
|
||||
/datum/tlv,
|
||||
/datum/universal_icon,
|
||||
/datum/weakref,
|
||||
/datum/z_pillar,
|
||||
/obj/effect/abstract/z_holder,
|
||||
// stuff below isn't 100% guaranteed to be ref-free, but they're prolly not an issue
|
||||
/turf/closed/mineral,
|
||||
/turf/open/lava,
|
||||
/turf/open/misc/asteroid,
|
||||
/turf/open/openspace,
|
||||
/turf/open/space,
|
||||
/obj/structure/flora, // icebox and such has a LOT of these
|
||||
/datum/chatmessage,
|
||||
/datum/lighting_corner,
|
||||
/datum/log_entry, // hopefully nobody's silly enough to accidentally pass a reference to these... right???
|
||||
/datum/reagent/consumable/nutriment,
|
||||
))
|
||||
for(var/type in typesof(base_type))
|
||||
.[type] = TRUE
|
||||
#endif
|
||||
|
||||
/datum/proc/find_references(references_to_clear = INFINITY)
|
||||
if(usr?.client)
|
||||
if(tgui_alert(usr,"Running this will lock everything up for about 5 minutes. Would you like to begin the search?", "Find References", list("Yes", "No")) != "Yes")
|
||||
@@ -36,7 +95,15 @@
|
||||
if(src.references_to_clear == 0)
|
||||
return
|
||||
|
||||
#ifdef FAST_REFERENCE_TRACKING
|
||||
var/alist/skip_types = GLOB.reftracker_skip_typecache
|
||||
#endif
|
||||
|
||||
for(var/datum/thing in world) //atoms (don't beleive its lies)
|
||||
#ifdef FAST_REFERENCE_TRACKING
|
||||
if(skip_types[thing.type])
|
||||
continue
|
||||
#endif
|
||||
DoSearchVar(thing, "World -> [thing.type]", starting_time)
|
||||
if(src.references_to_clear == 0)
|
||||
break
|
||||
@@ -45,6 +112,10 @@
|
||||
return
|
||||
|
||||
for(var/datum/thing) //datums
|
||||
#ifdef FAST_REFERENCE_TRACKING
|
||||
if(skip_types[thing.type])
|
||||
continue
|
||||
#endif
|
||||
DoSearchVar(thing, "Datums -> [thing.type]", starting_time)
|
||||
if(src.references_to_clear == 0)
|
||||
break
|
||||
@@ -126,7 +197,7 @@
|
||||
|
||||
else if(islist(potential_container))
|
||||
var/list/potential_cache = potential_container
|
||||
var/is_alist = istype(potential_cache, /alist)
|
||||
var/is_alist = isalist(potential_cache)
|
||||
for(var/element_in_list in potential_cache)
|
||||
//Check normal sublists
|
||||
if(islist(element_in_list))
|
||||
|
||||
Reference in New Issue
Block a user