From dc9c30a5b29ff434d6af16de481e3815fd2fb500 Mon Sep 17 00:00:00 2001 From: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> Date: Mon, 27 Mar 2023 18:04:25 +0200 Subject: [PATCH] Are they atomic enough, Wildkins? (#16087) --- .../subsystems/initialization/atoms.dm | 38 ++++++++--------- .../fluffyghost-ssatomswitchstatement.yml | 41 +++++++++++++++++++ 2 files changed, 58 insertions(+), 21 deletions(-) create mode 100644 html/changelogs/fluffyghost-ssatomswitchstatement.yml diff --git a/code/controllers/subsystems/initialization/atoms.dm b/code/controllers/subsystems/initialization/atoms.dm index 233b8037ad9..4aaae92954c 100644 --- a/code/controllers/subsystems/initialization/atoms.dm +++ b/code/controllers/subsystems/initialization/atoms.dm @@ -95,24 +95,25 @@ var/datum/controller/subsystem/atoms/SSatoms if(start_tick != world.time) BadInitializeCalls[the_type] |= BAD_INIT_SLEPT - if(result != INITIALIZE_HINT_NORMAL) - switch(result) - if(INITIALIZE_HINT_LATELOAD) - if(arguments[1]) //mapload - late_loaders += A - else - A.LateInitialize() - if(INITIALIZE_HINT_QDEL) + switch(result) + if(INITIALIZE_HINT_NORMAL) + // Pass + if(INITIALIZE_HINT_LATELOAD) + if(arguments[1]) //mapload + late_loaders += A + else + A.LateInitialize() + if(INITIALIZE_HINT_QDEL) + qdel(A) + return TRUE + if(INITIALIZE_HINT_LATEQDEL) + if(arguments[1]) //mapload + late_qdel += A + else qdel(A) return TRUE - if(INITIALIZE_HINT_LATEQDEL) - if(arguments[1]) //mapload - late_qdel += A - else - qdel(A) - return TRUE - else - BadInitializeCalls[the_type] |= BAD_INIT_NO_HINT + else + BadInitializeCalls[the_type] |= BAD_INIT_NO_HINT if(!A) //possible harddel return TRUE @@ -163,8 +164,3 @@ var/datum/controller/subsystem/atoms/SSatoms /datum/controller/subsystem/atoms/proc/map_loader_stop() initialized = old_initialized - -#undef BAD_INIT_QDEL_BEFORE -#undef BAD_INIT_DIDNT_INIT -#undef BAD_INIT_SLEPT -#undef BAD_INIT_NO_HINT diff --git a/html/changelogs/fluffyghost-ssatomswitchstatement.yml b/html/changelogs/fluffyghost-ssatomswitchstatement.yml new file mode 100644 index 00000000000..6ba0d4a1cba --- /dev/null +++ b/html/changelogs/fluffyghost-ssatomswitchstatement.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Fluffyghost + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - refactor: "SSAtoms init now uses a switch statement only, slightly more performant."