ITADN

Avoid nil dereferences after failed table RPC requests

#1569Pull RequestPeterDaveHello 创建于 14 天前
Review effort 1/5
P
PeterDaveHellocommented
## Summary - capture the RPC version once for each `RequestInfo` call - use the same version snapshot for field filtering, request formatting, and response decoding - convert RPC 16+ table responses only when `SendRequest` succeeds ## Why `SendRequest` returns `nil` for transport, HTTP, and RPC failures. Passing that result directly to `TranslateTableToObjects` caused a nil dereference. Reading `FRPCVersion` again after the blocking request could also make response decoding disagree with the format requested before the call. ## Validation - checked RPC versions below and above 16 with successful and failed request results - verified failed requests retain `nil` and bypass table conversion - verified successful RPC 16+ responses still use table conversion - verified request formatting and response decoding use one version snapshot - rebased onto the latest `master` with one commit changing only `rpc.pas`
合并状态:未合并 8 条评论