iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

自己的 Leak, 自己抓(swift)系列 第 11

掃瞄完 ID 之後~

  • 分享至 

  • xImage
  •  

從昨天的 visitor 的進度來看。

目前還不足以找到 potential leak target


Decl Visitor

範例只有示範 class 的版本

struct/extension/... 也需要補齊

可以再額外添加變數 context 去紀錄這個 visitor 位於 class In/struct Out/...

Closure Visitor

範例只有往下一層的結構。

為了方便,可以添加 unowned let parent: ClosureVisitor

capture list 可以往上一層 capture 變數,所以需要專門為 capture list 用的 IDVisitor

只有訪問 ClosureExprSyntax 是不夠的,會遺失 function call 的一些資訊


小結

稍微整理了一下,我們接下來要面對的問題

  • 變數
    • is struct?
    • is weak?
    • 原始來源?
  • closure -> function call
    • is escape closure
    • is nonescape closure
    • is skip function
      • 自定義 skip list

上一篇
第三層 Visitor (Closure Visitor)
下一篇
再次面對 SourceKitten(CursorInfo)
系列文
自己的 Leak, 自己抓(swift)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言