~ | | Fix a circular dependency for the SVN cert prompt callback. |
| ~ | Fix a memory leak with the new in-database SVN cert storage. |
| |
|
~ | | The SVN cert prompt callback assignment was causing a circular
|
~ | | dependency. The client was holding on to a reference to the function on
|
| ~ | The new SVN cert support introduced a memory leak due to a circular
|
| ~ | dependency. |
- | | SVNTool, while SVNTool was holding on to the client, preventing either
|
- | | from being cleaned up. |
| |
|
~ | | The callback is now defined inline, breaking the dependency. |
| ~ | The client was holding on to a reference to the function on SVNTool,
|
| + | while SVNTool was holding on to the client, preventing either from being
|
| + | cleaned up. |
| + |
|
| + | An attempt was made at inlining the function, but as that accessed data
|
| + | bound to the class, the circular dependency remained. |
| + |
|
| + | This appears to be an issue specifically with PySVN, as an independent
|
| + | repro case could be devised for pysvn.Client's callbacks, but not those
|
| + | from a mock object. |
| + |
|
| + | The callback is now defined as a classmethod and the only attribute it
|
| + | needs, a repository, is set up as a weakptr which is then accessed by a
|
| + | lambda calling the callback. This prevents the repository and SVNTool
|
| + | from remaining around indefinitely. |