コード例 #1
0
        public void Close()
        {
            InitWriter();

            foreach (Method method in methods)
            {
                int remappedToken = method.token;
                remap.TryGetValue(remappedToken, out remappedToken);
                symUnmanagedWriter.OpenMethod(remappedToken);
                if (method.document != null)
                {
                    ISymUnmanagedDocumentWriter doc = method.document.GetUnmanagedDocument(symUnmanagedWriter);
                    symUnmanagedWriter.DefineSequencePoints(doc, method.offsets.Length, method.offsets, method.lines, method.columns, method.endLines, method.endColumns);
                }
                foreach (Scope scope in method.scopes)
                {
                    scope.Do(symUnmanagedWriter);
                }
                symUnmanagedWriter.CloseMethod();
            }

            foreach (Document doc in documents.Values)
            {
                doc.Release();
            }

            symUnmanagedWriter.Close();
            Marshal.ReleaseComObject(symUnmanagedWriter);
            symUnmanagedWriter = null;
            documents.Clear();
            methods.Clear();
            remap.Clear();
            reversemap.Clear();
        }
コード例 #2
0
ファイル: SymbolWriter.cs プロジェクト: maresja1/SDenc
 /// <summary>
 /// Closes ISymUnmanagedWrite interface and moves state of writer to Done
 /// </summary>
 public void Close()
 {
     if (State != WriterState.NotIninitialized && State != WriterState.Done)
     {
         mWriter.Close();
         Dispose();
         State = WriterState.Done;
     }
 }
コード例 #3
0
 public void Close()
 {
     if (closeCalled)
     {
         return;
     }
     closeCalled = true;
     writer.Close();
 }
コード例 #4
0
ファイル: SymWriter.cs プロジェクト: IrwinDong/cecil
        public void Close()
        {
            m_writer.Close();
            Marshal.ReleaseComObject(m_writer);

            foreach (var document in documents)
            {
                Marshal.ReleaseComObject(document);
            }
        }
コード例 #5
0
 /// <summary>
 /// Close the PDB writer and write the PDB data to the stream provided by <see cref="_streamProvider"/>.
 /// </summary>
 public void WritePdbToOutput()
 {
     try
     {
         _symWriter?.Close();
         _symWriter = null;
     }
     catch (Exception ex)
     {
         throw new PdbWritingException(ex);
     }
 }
コード例 #6
0
 private void Close()
 {
     try
     {
         _symWriter?.Close();
         _symWriter = null;
         _pdbStream = null;
     }
     catch (Exception ex)
     {
         throw new PdbWritingException(ex);
     }
 }
コード例 #7
0
        public unsafe void WriteTo(Stream stream)
        {
            Debug.Assert(_pdbStream != null);
            Debug.Assert(_symWriter != null);

            try
            {
                // SymWriter flushes data to the native stream on close:
                _symWriter.Close();
                _symWriter = null;
                _pdbStream.CopyTo(stream);
            }
            catch (Exception ex)
            {
                throw new PdbWritingException(ex);
            }
        }
コード例 #8
0
ファイル: SymbolWriter.cs プロジェクト: parhelia512/perwapi
 public void Close()
 {
     writer.Close();
 }