149 lines
40 KiB
Markdown
149 lines
40 KiB
Markdown
# M15逐引用前置状态锚点
|
||
|
||
沿用已复核的142处引用;近邻声明由文本定位,不能当作完整C#方法归属或控制流支配证明。实际读取语句与原台账逐行对应。全局门锚点见主方案§3,未证明的入口保留限制,不以补文档为由新增业务保护。
|
||
|
||
| 引用位置 | 分类 | 近邻声明锚点 | 近邻条件锚点 | 前置状态/限制 |
|
||
|---|---|---|---|---|
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:63 | property-declaration | 41 | 64: internal bool IsInactiveForKVValidation => !IsInit && CurFishingEventData==null && eventChallengeMain==null &&<br>65: eventChallengeConfig==null && challengeMapData==null && _stageDropList.Count==0 && _eliminateListScore.Count==0; | 初始引用null;旧缺键未调用Init不等于清除已存在旧对象 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:72 | assignment | 70 | | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:79 | assignment | 76 | 78: if(state==null) throw new ArgumentNullException(nameof(state)); | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:112 | requires-active-context | 110 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:115 | requires-active-context | 110 | 115: if (fishingChallengeData.FirstOpen) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:117 | requires-active-context | 110 | 115: if (fishingChallengeData.FirstOpen) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:143 | null-observation | 139 | 143: if (fishingChallengeData == null) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:145 | requires-active-context | 139 | 143: if (fishingChallengeData == null) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:153 | null-observation | 139 | 151: if (!IsTimeAllow())<br>153: InVisibleReason = $"IsTimeAllow Failed {ZZTimeHelper.UtcNow()} {fishingChallengeData?.StartTime} {fishingChallengeData?.EndTime}"; | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:160 | null-observation | 139 | 158: if (IsClearAllLevel())<br>160: InVisibleReason = $"IsClearAllLevel Failed {ZZTimeHelper.UtcNow()} {fishingChallengeData?.RankTierLevel} {TopRankTier}"; | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:173 | requires-active-context | 169 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:174 | requires-active-context | 169 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:186 | assignment | 184 | | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:202 | requires-active-context | 200 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:208 | requires-active-context | 205 | 208: if (fishingChallengeData.RankTierLevel <= TopRankTier) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:218 | assignment | 215 | | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:227 | requires-active-context | 221 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:228 | requires-active-context | 221 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:229 | requires-active-context | 221 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:230 | requires-active-context | 221 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:231 | requires-active-context | 221 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:232 | requires-active-context | 221 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:233 | requires-active-context | 221 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:234 | requires-active-context | 221 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:251 | null-observation | 244 | 251: if (CurFishingEventData != null && fishingChallengeData != null && CurFishingEventData.ID != fishingChallengeData.EventId) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:256 | null-observation | 244 | 256: if (fishingChallengeData == null)<br>258: if (CurFishingEventData == null) // 不存在Event | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:262 | assignment | 244 | | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:281 | null-observation | 278 | 281: if (fishingChallengeData != null)<br>283: if (!IsTimeAllow()) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:286 | requires-active-context | 278 | 286: if (fishingChallengeData.Finished == 0) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:324 | requires-active-context | 315 | 322: else if (status == 1) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:327 | requires-active-context | 315 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:332 | requires-active-context | 315 | 330: else if (status == 2) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:333 | comment | 315 | | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:352 | requires-active-context | 341 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:355 | requires-active-context | 341 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:363 | requires-active-context | 341 | 361: if (endIndex >= GetFullStep() - 1) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:365 | requires-active-context | 341 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:368 | requires-active-context | 341 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:382 | requires-active-context | 380 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:388 | requires-active-context | 386 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:398 | requires-active-context | 396 | 398: if (fishingChallengeData.Score == 0) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:404 | requires-active-context | 396 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:406 | requires-active-context | 396 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:436 | requires-active-context | 432 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:463 | requires-active-context | 455 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:555 | requires-active-context | 553 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:556 | requires-active-context | 553 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:557 | requires-active-context | 553 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:558 | comment | 553 | | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:559 | requires-active-context | 553 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:566 | comment | 562 | | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:572 | null-observation | 569 | 572: if (fishingChallengeData == null || eventChallengeConfig == null || eventChallengeMain == null) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:574 | requires-active-context | 569 | 572: if (fishingChallengeData == null || eventChallengeConfig == null || eventChallengeMain == null) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:592 | requires-active-context | 588 | 590: if (isSuccess) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:593 | requires-active-context | 588 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:605 | null-observation | 601 | 605: if (fishingChallengeData == null) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:618 | requires-active-context | 601 | 619: if (qualityScore > 0) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:621 | requires-active-context | 601 | 619: if (qualityScore > 0) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:622 | comment | 601 | | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:628 | requires-active-context | 601 | 629: .AddContent("tiler", eventChallengeMain?.ID) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:630 | requires-active-context | 601 | 629: .AddContent("tiler", eventChallengeMain?.ID) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:662 | requires-active-context | 659 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:686 | requires-active-context | 678 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:710 | requires-active-context | 704 | 708: if (_stageDropList.Count > 0) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:712 | requires-active-context | 704 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:723 | requires-active-context | 721 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:729 | requires-active-context | 727 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:735 | requires-active-context | 733 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:746 | requires-active-context | 741 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:799 | requires-active-context | 741 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:800 | requires-active-context | 741 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:812 | requires-active-context | 741 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:817 | requires-active-context | 741 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:831 | requires-active-context | 821 | 829: if (rand < 0) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:844 | null-observation | 840 | 844: if (fishingChallengeData != null) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:846 | requires-active-context | 840 | 844: if (fishingChallengeData != null) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:852 | requires-active-context | 840 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:853 | requires-active-context | 840 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:874 | assignment | 869 | 872: if (!isSuccess) | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:902 | requires-active-context | 896 | 900: var tier = eventChallengeMain?.RankTier ?? -1; | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:915 | null-observation | 896 | 914: var finalRewardList = eventChallengeMain?.FinalReward?<br>915: .ElementAtOrDefault(fishingChallengeData?.index ?? -1) ?? -1;<br>916: var finalPlayer = eventChallengeMain?.FinalPlayer?<br>917: .ElementAtOrDefault(fishingChallengeData?.index ?? -1) ?? -1; | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:917 | null-observation | 896 | 915: .ElementAtOrDefault(fishingChallengeData?.index ?? -1) ?? -1;<br>916: var finalPlayer = eventChallengeMain?.FinalPlayer?<br>917: .ElementAtOrDefault(fishingChallengeData?.index ?? -1) ?? -1; | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:934 | null-observation | 896 | 933: var finalRewardList = eventChallengeMain?.FinalReward?<br>934: .ElementAtOrDefault(fishingChallengeData?.index ?? -1) ?? -1;<br>935: var finalPlayer = eventChallengeMain?.FinalPlayer?<br>936: .ElementAtOrDefault(fishingChallengeData?.index ?? -1) ?? -1; | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:936 | null-observation | 896 | 934: .ElementAtOrDefault(fishingChallengeData?.index ?? -1) ?? -1;<br>935: var finalPlayer = eventChallengeMain?.FinalPlayer?<br>936: .ElementAtOrDefault(fishingChallengeData?.index ?? -1) ?? -1; | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:950 | null-observation | 946 | 948: if (CurFishingEventData == null)<br>950: if (fishingChallengeData != null) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:952 | requires-active-context | 946 | 950: if (fishingChallengeData != null) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:953 | requires-active-context | 946 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:963 | null-observation | 946 | 963: if (fishingChallengeData != null) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:965 | requires-active-context | 946 | 963: if (fishingChallengeData != null) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:966 | requires-active-context | 946 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:975 | requires-active-context | 971 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:986 | requires-active-context | 971 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1009 | requires-active-context | 1001 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1034 | null-observation | 1028 | 1034: if (fishingChallengeData == null) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1044 | requires-active-context | 1028 | 1044: else if (fishingChallengeData.eliminateNumber == null || fishingChallengeData.robotAccountList == null) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1074 | null-observation | 1072 | 1074: if (fishingChallengeData != null) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1076 | requires-active-context | 1072 | 1074: if (fishingChallengeData != null) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1084 | save-null-capable | 1082 | | null可序列化为原字符串null;证明旧代码能产出本样本,不意味着允许删除键 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1089 | null-observation | 1087 | 1089: if (fishingChallengeData != null)<br>1091: return fishingChallengeData?.EventId + "_LL_FIRST_OPEN"; | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1091 | null-observation | 1087 | 1089: if (fishingChallengeData != null)<br>1091: return fishingChallengeData?.EventId + "_LL_FIRST_OPEN"; | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1098 | requires-active-context | 1096 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1099 | requires-active-context | 1096 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/Services/UserService.KVFishingReward.cs:127 | null-observation | 58 | 127: if(challenge.fishingChallengeData!=null && challenge.ChallengeState()!=0 && challenge.ChallengeState()!=3 && challenge.IsTimeAllow())<br>129: if(player._fishingFrequency<3 || !player.IsOpenMagnification || !fish.IsOpenPiercing) | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchSceneRoadUI.cs:59 | requires-active-context | 52 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchSceneRoad.cs:81 | alias-read | 66 | | RoadUI缓存别名_thisEventData;下一行82读取step,需要非null活动前置,已另追踪该别名 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:149 | comment | 132 | 149: // if (i >= _fishingChallengeManager.fishingChallengeData.robotAccountList.Count) | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:151 | comment | 132 | 149: // if (i >= _fishingChallengeManager.fishingChallengeData.robotAccountList.Count)<br>152: // if (robots.TryGetValue(_fishingChallengeManager.fishingChallengeData.robotAccountList[idx], | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:152 | comment | 132 | 152: // if (robots.TryGetValue(_fishingChallengeManager.fishingChallengeData.robotAccountList[idx], | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:160 | requires-active-context | 132 | 160: if (robots.TryGetValue(_fishingChallengeManager.fishingChallengeData.robotAccountList[i], | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:229 | requires-active-context | 221 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:139 | requires-active-context | 134 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:175 | requires-active-context | 153 | 175: if (robots.TryGetValue(_fishingChallengeManager.fishingChallengeData.robotAccountList[i], out cfg.Robot robot)) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:199 | comment | 153 | | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:203 | comment | 153 | | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:320 | requires-active-context | 310 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:442 | comment | 310 | | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:305 | validation-only | 150 | | 既有验证读取;不属于线上入口 |
|
||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:328 | validation-only | 150 | 328: Check(club.SnapshotForKVValidation().DonateCount==7 && challenge.fishingChallengeData!=null && chains.OfferChainsData!=null && disco.OfferDiscoPartyData!=null && partner.GatherData!=null && cube.EventData!=null);<br>330: Check(potion.PotionData!=null && pinball.PinballData!=null && scratch.ScratchTicketData!=null && progress.SnapshotForKVValidation().IsPresent && migration.SnapshotForKVValidation().IsPresent && pinataTarget.PurchasedCount==9 && digging.DataModel!=null); | 既有验证读取;不属于线上入口 |
|
||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:344 | validation-only | 150 | 343: Check(club.SnapshotForKVValidation().SignTime==null && club.SnapshotForKVValidation().DonateCount==0 && club.SnapshotForKVValidation().OpenRed);<br>344: Check(challenge.fishingChallengeData==null && challenge.IsInactiveForKVValidation && chains.OfferChainsData==null && chains.IsInactiveForKVValidation && disco.OfferDiscoPartyData==null && disco.FreeTime==1 && disco.IsInactiveForKVValidation);<br>345: Check(partner.GatherData==null && partner.RuntimeEmptyForKVValidation && !ReferenceEquals(oldPartner,partner.PartnerInfoManager) && !ReferenceEquals(oldRobot,partner.RobotInvitationSystem));<br>346: Check(cube.EventData==null && cube.IsInactiveForKVValidation && eventPack.SnapshotForKVValidation().PurchaseCount==0 && !piggy.KVLoadPresent && !bargain.KVLoadPresent && !shooting.KVLoadPresent && foot.CompleteFootPrintForKVValidation==0); | 既有验证读取;不属于线上入口 |
|
||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:695 | validation-only | 150 | 693: Check(state!=null && state.IsPresent); | 既有验证读取;不属于线上入口 |
|
||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:712 | validation-only | 150 | | 既有验证读取;不属于线上入口 |
|
||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:714 | validation-only | 150 | | 既有验证读取;不属于线上入口 |
|
||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:716 | validation-only | 150 | 718: Check(challenge.fishingChallengeData==null && challenge.IsInactiveForKVValidation); | 既有验证读取;不属于线上入口 |
|
||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:718 | validation-only | 150 | 718: Check(challenge.fishingChallengeData==null && challenge.IsInactiveForKVValidation); | 既有验证读取;不属于线上入口 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchScene1.cs:113 | requires-active-context | 100 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchScene1.cs:114 | comment | 100 | | 注释不执行,不能作为读取入口 |
|
||
| Client/Assets/Scripts/UI/Challenge/EventChallengeRewardPopupPanel.cs:78 | requires-active-context | 65 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Challenge/EventChallengeRewardPopupPanel.cs:92 | requires-active-context | 84 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchScene.cs:46 | requires-active-context | 29 | 47: if (step < 0) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Challenge/EventChallengePanel.cs:170 | requires-active-context | 167 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Challenge/EventChallengePanel.cs:232 | requires-active-context | 227 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Challenge/EventChallengePanel.cs:233 | requires-active-context | 227 | 235: // if (oldScore == newScore && newScore = ) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Challenge/EventChallengeMatchingLoadingPanel.cs:143 | requires-active-context | 114 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:98 | requires-active-context | 67 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:113 | requires-active-context | 67 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:192 | requires-active-context | 185 | 192: else if (_fishingChallengeManager.PreScore != _fishingChallengeManager.fishingChallengeData.Score) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:211 | requires-active-context | 197 | 212: if ((float)(_fishingChallengeManager.fishingChallengeData.Score - _fishingChallengeManager.PreScore) / newScore > 0.05f) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:212 | requires-active-context | 197 | 212: if ((float)(_fishingChallengeManager.fishingChallengeData.Score - _fishingChallengeManager.PreScore) / newScore > 0.05f) | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:218 | requires-active-context | 197 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:219 | requires-active-context | 197 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:258 | requires-active-context | 232 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:259 | requires-active-context | 232 | | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|