剛說完代碼風格問題,今天下午來了個Bug。
也是個小概率事件啦,我扔出去的指針,在對象已經被釋放了的情況下,仍然被外面拿著,結果就崩了……如果換成Handle就肯定不會有這個問題。
這個Bug本來很難踫到,從邏輯上來說幾乎是不可能的,這次踫到是因爲打了個斷點,在某個方法内停留得太久導致的。今天臨時的做法是加了一個析構的Notify,通知外面不要Hold這個指針了。
我在想要不要統一改用Handle算了。不過這樣會導致性能的下降,因爲外面每次對這個對象進行操作都要有一個從Handle到對象的查找。還有一種做法是智能指針,或者自己實現引用計數。
其實我的代碼裏面已經有引用計數了,不過沒有暴露出去。
发表回复