Unref() private method

private Unref ( ) : void
return void
コード例 #1
0
        static void OnExtensionChanged(object s, ExtensionNodeEventArgs args)
        {
            VersionControlSystem vcs;

            try {
                vcs = (VersionControlSystem)args.ExtensionObject;
            } catch (Exception e) {
                LoggingService.LogError("Failed to initialize VersionControlSystem type.", e);
                return;
            }

            if (args.Change == ExtensionChange.Add)
            {
                handlers.Add(vcs);
                try {
                    // Include the repository type in the serialization context, so repositories
                    // of this type can be deserialized from the configuration file.
                    Repository r = vcs.CreateRepositoryInstance();
                    r.AddRef();
                    dataContext.IncludeType(r.GetType());
                    r.Unref();
                } catch (Exception e) {
                    LoggingService.LogError("Error while adding version control system.", e);
                }
            }
            else
            {
                handlers.Remove(vcs);
            }
        }
コード例 #2
0
 public void Dispose()
 {
     lock (VersionControlService.referenceCacheLock) {
         VersionControlService.referenceCache.Remove(repo);
     }
     repo.Unref();
 }
コード例 #3
0
        static void OnExtensionChanged(object s, ExtensionNodeEventArgs args)
        {
            VersionControlSystem vcs;

            try {
                vcs = (VersionControlSystem)args.ExtensionObject;
            } catch (Exception e) {
                LoggingService.LogError("Failed to initialize VersionControlSystem type.", e);
                return;
            }

            if (args.Change == ExtensionChange.Add)
            {
                IComparer <VersionControlSystem> compare = new CompareVersionControlSystem();

                int search = handlers.BinarySearch(vcs, compare);

                if (search < 0)
                {
                    handlers.Insert(~search, vcs);
                }
                else
                {
                    LoggingService.LogError("Adding new version control system {0} failed, the name {1} is already reserved.", vcs.GetType().Name, vcs.Name);
                    return;
                }
                try {
                    // Include the repository type in the serialization context, so repositories
                    // of this type can be deserialized from the configuration file.
                    Repository r = vcs.CreateRepositoryInstance();
                    r.AddRef();
                    dataContext.IncludeType(r.GetType());
                    r.Unref();
                } catch (Exception e) {
                    LoggingService.LogError("Error while adding version control system.", e);
                }
            }
            else
            {
                handlers.Remove(vcs);
            }
        }
コード例 #4
0
 public void Dispose()
 {
     repo.Unref();
 }
コード例 #5
0
 public void Dispose()
 {
     VersionControlService.referenceCache.Remove(repo);
     VersionControlService.repositoryCache.Remove(repo.RootPath.CanonicalPath);
     repo.Unref();
 }