fix node isn't removed when call 'free'