]> git.donarmstrong.com Git - bamtools.git/blobdiff - src/api/internal/bam/BamReader_p.cpp
merge master 2.3.0
[bamtools.git] / src / api / internal / bam / BamReader_p.cpp
index 6484a10b2c0f07aed19e31a74b1d5f9ed114c51a..737d59800a36d8f7a2e787ad64ec94684f1ce2a1 100644 (file)
@@ -2,7 +2,7 @@
 // BamReader_p.cpp (c) 2009 Derek Barnett
 // Marth Lab, Department of Biology, Boston College
 // ---------------------------------------------------------------------------
-// Last modified: 25 October 2011 (DB)
+// Last modified: 18 November 2012 (DB)
 // ---------------------------------------------------------------------------
 // Provides the basic functionality for reading BAM files
 // ***************************************************************************
@@ -94,6 +94,10 @@ const string BamReaderPrivate::Filename(void) const {
     return m_filename;
 }
 
+const SamHeader& BamReaderPrivate::GetConstSamHeader(void) const {
+    return m_header.ToConstSamHeader();
+}
+
 string BamReaderPrivate::GetErrorString(void) const {
     return m_errorString;
 }
@@ -232,6 +236,7 @@ bool BamReaderPrivate::LoadNextAlignment(BamAlignment& alignment) {
 
     // read in the 'block length' value, make sure it's not zero
     char buffer[sizeof(uint32_t)];
+    fill_n(buffer, sizeof(uint32_t), 0);
     m_stream.Read(buffer, sizeof(uint32_t));
     alignment.SupportData.BlockLength = BamTools::UnpackUnsignedInt(buffer);
     if ( m_isBigEndian ) BamTools::SwapEndian_32(alignment.SupportData.BlockLength);
@@ -367,7 +372,6 @@ bool BamReaderPrivate::Open(const string& filename) {
 
         // open BgzfStream
         m_stream.Open(filename, IBamIODevice::ReadOnly);
-        assert(m_stream);
 
         // load BAM metadata
         LoadHeaderData();