@@ -32,8 +32,8 @@ blockappend!(dest::BlockVector, s1, s2, sources...) =
32
32
33
33
function blockappend! (dest:: BlockVector{<:Any,T} , src:: BlockVector{<:Any,T} ) where {T}
34
34
append! (dest. blocks, src. blocks)
35
- offset = last (dest. axes[1 ]) + 1 - src. axes[1 ]. first
36
- append! (dest. axes[1 ]. lasts , (n + offset for n in src. axes[1 ]. lasts ))
35
+ offset = last (dest. axes[1 ]) + 1 - first ( src. axes[1 ])
36
+ append! (blocklasts ( dest. axes[1 ]) , (n + offset for n in blocklasts ( src. axes[1 ]) ))
37
37
return dest
38
38
end
39
39
@@ -102,7 +102,7 @@ _newblockfor(dest, block) =
102
102
103
103
function _blockpush! (dest, block)
104
104
push! (dest. blocks, block)
105
- push! (dest. axes[1 ]. lasts , last (dest. axes[1 ]) + length (block))
105
+ push! (blocklasts ( dest. axes[1 ]) , last (dest. axes[1 ]) + length (block))
106
106
return dest
107
107
end
108
108
@@ -144,8 +144,8 @@ blockpushfirst!(dest::BlockVector{<:Any,<:Any}, block) =
144
144
145
145
function _blockpushfirst! (dest, block)
146
146
pushfirst! (dest. blocks, block)
147
- dest. axes[1 ]. lasts .+ = length (block) - 1 + dest. axes[1 ]. first
148
- pushfirst! (dest. axes[1 ]. lasts , length (block))
147
+ blocklasts ( dest. axes[1 ]) .+ = length (block) - 1 + first ( dest. axes[1 ])
148
+ pushfirst! (blocklasts ( dest. axes[1 ]) , length (block))
149
149
return dest
150
150
end
151
151
@@ -172,7 +172,7 @@ julia> A
172
172
"""
173
173
function blockpop! (A:: BlockVector )
174
174
block = pop! (A. blocks)
175
- pop! (A. axes[1 ]. lasts )
175
+ pop! (blocklasts ( A. axes[1 ]) )
176
176
return block
177
177
end
178
178
@@ -199,8 +199,8 @@ julia> A
199
199
"""
200
200
function blockpopfirst! (A:: BlockVector )
201
201
block = popfirst! (A. blocks)
202
- n = popfirst! (A. axes[1 ]. lasts )
203
- A. axes[1 ]. lasts .- = n
202
+ n = popfirst! (blocklasts ( A. axes[1 ]) )
203
+ blocklasts ( A. axes[1 ]) .- = n
204
204
return block
205
205
end
206
206
@@ -245,7 +245,7 @@ function append_itr!(dest::BlockVector, ::Union{Base.HasShape,Base.HasLength}, s
245
245
_append_itr_foldfn! (block,i,x)
246
246
end
247
247
da, = dest. axes
248
- da . lasts [end ] += length (src)
248
+ blocklasts (da) [end ] += length (src)
249
249
return dest
250
250
end
251
251
@@ -257,23 +257,23 @@ function append_itr!(dest::BlockVector, ::Base.SizeUnknown, src)
257
257
return n + 1
258
258
end
259
259
da, = dest. axes
260
- da . lasts [end ] += n
260
+ blocklasts (da) [end ] += n
261
261
return dest
262
262
end
263
263
264
264
# remove empty blocks at the end
265
265
function _squash_lasts! (A:: BlockVector )
266
266
while ! isempty (A. blocks) && isempty (A. blocks[end ])
267
267
pop! (A. blocks)
268
- pop! (A. axes[1 ]. lasts )
268
+ pop! (blocklasts ( A. axes[1 ]) )
269
269
end
270
270
end
271
271
272
272
# remove empty blocks at the beginning
273
273
function _squash_firsts! (A:: BlockVector )
274
274
while ! isempty (A. blocks) && isempty (A. blocks[1 ])
275
275
popfirst! (A. blocks)
276
- popfirst! (A. axes[1 ]. lasts )
276
+ popfirst! (blocklasts ( A. axes[1 ]) )
277
277
end
278
278
end
279
279
@@ -287,7 +287,7 @@ function Base.pop!(A::BlockVector)
287
287
isempty (A) && throw (Argument (" array must be nonempty" ))
288
288
_squash_lasts! (A)
289
289
x = pop! (A. blocks[end ])
290
- lasts = A. axes[1 ]. lasts
290
+ lasts = blocklasts ( A. axes[1 ])
291
291
if isempty (A. blocks[end ])
292
292
pop! (A. blocks)
293
293
pop! (lasts)
@@ -310,9 +310,9 @@ function Base.popfirst!(A::BlockVector)
310
310
ax, = A. axes
311
311
if isempty (A. blocks[1 ])
312
312
popfirst! (A. blocks)
313
- popfirst! (ax . lasts )
313
+ popfirst! (blocklasts (ax) )
314
314
else
315
- ax . lasts [1 ] -= 1
315
+ blocklasts (ax) [1 ] -= 1
316
316
end
317
317
return x
318
318
end
@@ -331,6 +331,6 @@ Push items to the beginning of the first block.
331
331
"""
332
332
function Base. pushfirst! (A:: BlockVector , items... )
333
333
pushfirst! (A. blocks[1 ], items... )
334
- A. axes[1 ]. lasts .+ = length (items)
334
+ blocklasts ( A. axes[1 ]) .+ = length (items)
335
335
return A
336
336
end
0 commit comments