================
@@ -3216,38 +3216,20 @@ def __getitem__(self, key: int) -> CodeCompletionResult:
         return self.results[key]
 
 
-class CodeCompletionResults(ClangObject):
-    def __init__(self, ptr: _Pointer[CCRStructure]):
-        assert isinstance(ptr, POINTER(CCRStructure)) and ptr
-        self.ptr = self._as_parameter_ = ptr
----------------
DeinAlptraum wrote:

> I don't have ideas either what might have happened with a pointer to an 
> object that we ourselves are responsible to free (the right term for that is 
> ownership, but I'm not sure if you are familiar with it).

That in itself is not necessarily a problem, or at least it was wired up 
correctly: the Python garbage collector calls a class's `__del__` method once 
it can be cleaned up, which in the case of `CodeCompletionResults` just calls 
the cleanup function from the C-library. 

> Just in case, I don't have objections over the changes you ended up with. I 
> want to make sure that we have the best shared understanding of the old code.

I thought I'd understood the code, but then my first fix didn't work so now I'm 
not entirely.

https://github.com/llvm/llvm-project/pull/224678
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to