@@ -116,7 +116,9 @@ function read_block_header(io::IO, position::Int64)
116116 seek (io, position)
117117 nb = readbytes! (io, header)
118118 # TODO : Better error message
119- @assert nb == length (header)
119+ if nb != length (header)
120+ error (" Number of bytes read from stream does not match length of header" )
121+ end
120122
121123 # Decode block header
122124 token = @view header[1 : 4 ]
@@ -128,15 +130,20 @@ function read_block_header(io::IO, position::Int64)
128130 data_size = big2native_U64 (@view header[31 : 38 ])
129131 checksum = @view header[39 : 54 ]
130132
131- # TODO : Better error message
132- @assert token == block_magic_token
133+ if token != block_magic_token
134+ error (" Block does not start with magic number" )
135+ end
133136
134137 STREAMED = Bool (flags & 0x1 )
135138 # We don't handle streamed blocks yet
136- @assert ! STREAMED
139+ if STREAMED
140+ error (" ASDF.jl does not support streamed blocks" )
141+ end
137142
138143 # TODO : Better error message
139- @assert allocated_size >= used_size
144+ if allocated_size < used_size
145+ error (" ASDF file header incorrectly specifies amount of space to use" )
146+ end
140147
141148 return BlockHeader (io, position, token, header_size, flags, compression, allocated_size, used_size, data_size, checksum)
142149end
@@ -165,7 +172,9 @@ function read_block(header::BlockHeader)
165172 if any (header. checksum != 0 )
166173 actual_checksum = md5 (data)
167174 # TODO : Better error message
168- @assert all (actual_checksum == header. checksum)
175+ if any (actual_checksum != header. checksum)
176+ error (" Checksum mismatch in ASDF file header" )
177+ end
169178 end
170179
171180 # Decompress data
@@ -187,15 +196,16 @@ function read_block(header::BlockHeader)
187196 elseif compression == C_Zstd
188197 codec = ZstdCodec ()
189198 else
190- # TODO : Better error message
191- @assert false
199+ error (" Invalid compression format found: $compression " )
192200 end
193201 data = decode (codec, data)
194202 end
195203 data:: AbstractVector{UInt8}
196204
197205 # TODO : Better error message
198- @assert length (data) == header. data_size
206+ if length (data) != header. data_size
207+ error (" Actual data size different from declared data size in header." )
208+ end
199209
200210 return data
201211end
389399function Base. getindex (ndarray:: NDArray )
390400 if ndarray. data != = nothing
391401 data = ndarray. data
392- @assert ndarray. byteorder == host_byteorder
402+ if ndarray. byteorder != host_byteorder
403+ error (" ndarray byteorder does not match system byteorder" )
404+ end
393405 elseif ndarray. source != = nothing
394406 data = read_block (ndarray. lazy_block_headers. block_headers[ndarray. source + 1 ])
395407 # Handle strides and offset.
0 commit comments