completion: wrap expression visitor into a read lock
Unlike in the parse job, we do not hold the parse lock for the context which is passed to the expression visitor. Thus, it might be modified or deleted by a parse job while we're passing the pointer around. This means that after data is taken out of the DUContextPointer, the read lock must not be released again while the object is in use. Likely the reason for occasional crashes in completion in some situations. BUG:374097
parent
301ca47f
Please register or sign in to comment