Skip to content

all: Enforce weak / global functions - #1249

Draft
german77 wants to merge 2 commits into
MonsterDruide1:masterfrom
german77:dontBeWeak
Draft

all: Enforce weak / global functions#1249
german77 wants to merge 2 commits into
MonsterDruide1:masterfrom
german77:dontBeWeak

Conversation

@german77

@german77 german77 commented May 21, 2026

Copy link
Copy Markdown
Contributor

This is a continuation of #1231. Fully eliminates all weak / global mismatches from smo. Unlike the previous PR I call it an aggressive approach since it will break some matches and duplicate code. The lost matches will be recovered once the object is used.

depends on:
open-ead/NintendoSDK-NEX#6
open-ead/sead#269
open-ead/eui#6


This change is Reviewable


Report for 1.0 (0de3c75 - fbc7d4e)

📉 Matched code: 15.35% (-0.01%, -1108 bytes)

✅ 6 new matches
Unit Item Bytes Before After
Unknown/SePlayer sead::StringBuilderBase<char16_t>::rstripUnprintableAsciiChars() +117 25.00% 100.00%
Unknown/SePlayer sead::StringBuilderBase<char16_t>::replaceChar(char16_t, char16_t) +51 25.00% 100.00%
sead/gfx/nvn/seadDebugFontMgrJis1Nvn sead::DebugFontMgrJis1Nvn::~DebugFontMgrJis1Nvn() +1 75.00% 100.00%
sead/gfx/nvn/seadDebugFontMgrJis1Nvn sead::DebugFontMgrJis1Nvn::~DebugFontMgrJis1Nvn() +1 75.00% 100.00%
sead/gfx/nvn/seadDebugFontMgrNvn sead::DebugFontMgrNvn::~DebugFontMgrNvn() +1 75.00% 100.00%
sead/gfx/nvn/seadDebugFontMgrNvn sead::DebugFontMgrNvn::~DebugFontMgrNvn() +1 75.00% 100.00%
🥀 42 broken matches
Unit Item Bytes Before After
Player/HackCap HackCapThrowParam::HackCapThrowParam(al::LiveActor*) -512 100.00% 0.00%
sead/framework/nx/seadGameFrameworkNx sead::LogicalFrameBuffer::checkDerivedRuntimeTypeInfo(sead::RuntimeTypeInfo::Interface const*) const -112 100.00% 0.00%
sead/framework/nx/seadGameFrameworkNx sead::LogicalFrameBuffer::getRuntimeTypeInfo() const -92 100.00% 0.00%
sead/gfx/seadDrawLockContext sead::MathCalcCommon<int>::gcd(int, int) -57 100.00% 25.00%
sead/gfx/seadDrawLockContext sead::MathCalcCommon<unsigned int>::gcd(unsigned int, unsigned int) -57 100.00% 25.00%
sead/gfx/seadDrawLockContext sead::MathCalcCommon<long>::gcd(long, long) -57 100.00% 25.00%
sead/gfx/seadDrawLockContext sead::MathCalcCommon<unsigned long>::gcd(unsigned long, unsigned long) -57 100.00% 25.00%
Library/Sequence/Sequence al::IUseSceneCreator::~IUseSceneCreator() -20 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<char const*>::isValidPtr() const -16 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<sead::Vector3<float> >::isValidPtr() const -16 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<sead::Color4f>::isValidPtr() const -16 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<bool>::isValidPtr() const -16 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<unsigned char>::isValidPtr() const -16 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<float>::isValidPtr() const -16 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<sead::Vector2<float> >::isValidPtr() const -16 100.00% 0.00%
Library/Sequence/Sequence al::Sequence::isDisposable() const -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<char const*>::clearPtr() -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParam_YamlString::getClassId() const -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParam_YamlString::setPtr_YamlString(char const**) -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<sead::Vector3<float> >::clearPtr() -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParam_V3f::getClassId() const -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParam_V3f::setPtr_V3f(sead::Vector3<float>*) -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<sead::Color4f>::clearPtr() -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParam_YamlColor::getClassId() const -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParam_YamlColor::setPtr_YamlColor(sead::Color4f*) -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<bool>::clearPtr() -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParam_bool::getClassId() const -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParam_bool::setPtr_bool(bool*) -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParamBase<unsigned char>::clearPtr() -8 100.00% 0.00%
Library/Shadow/ShadowMaskCtrl alYamlMacroUtil::YamlParam_u8::getClassId() const -8 100.00% 0.00%

...and 12 more broken matches

📉 1 regression in an unmatched item
Unit Item Bytes Before After
Npc/SmallBirdStateFlyAway SmallBirdStateFlyAway::exeFlyAway() -1008 75.00% 25.00%

@github-actions github-actions Bot added the status:waiting for review This PR is ready to take the first or another look at it! label May 21, 2026
@german77
german77 force-pushed the dontBeWeak branch 4 times, most recently from bcc582b to 65c86f1 Compare June 29, 2026 15:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:waiting for review This PR is ready to take the first or another look at it!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant