branchrust_reboot/main/pool_analyzer_non_caching_methodscancel
2 Commits over 0 Days - Infinitycph!
Update Rust.CodeAnalyzer again - switched the way methods are marked to an attribute [PoolAnalyzerNonCaching]
Mark all RPC method overloads with it
Update Rust.SourceGenerator.Rpc to add it to the autogenerated RPC methods too
Update Rust.CodeAnalyzer
Brings an upgrade to the pool static analyzer, letting us mark certain methods as "non-caching" via .editorconfig - for example ClientRPC / ServerRPC are guaranteed to not cache or free pooled arguments.
Doing so tells MissingFree to keep analyzing after calls to that method (instead of treating the pooled variable as escaped).
This found 6 pool leaks which are also fixed in this commit (inside BasePlayer-Spectating, BasePlayer-MapInfo, DisplayingBoxStorage, GrowableEntity-Server, WireTool, IndustrialConveyor).