@@ -474,7 +474,6 @@ template <typename ArrayType>
474474Flatbush<ArrayType>::Flatbush(uint32_t iNumItems, uint16_t iNodeSize) noexcept {
475475 iNodeSize = std::min (std::max (iNodeSize, gMinNodeSize ), gMaxNodeSize );
476476 init (iNumItems, iNodeSize);
477-
478477 mData .resize (mData .capacity (), 0U );
479478 mData [0 ] = gValidityFlag ;
480479 mData [1 ] = (gVersion << 4U ) + detail::arrayTypeIndex<ArrayType>();
@@ -486,10 +485,10 @@ template <typename ArrayType>
486485Flatbush<ArrayType>::Flatbush(const uint8_t * iData, size_t iSize) noexcept {
487486 const auto wNodeSize = *detail::bit_cast<const uint16_t *>(&iData[2 ]);
488487 const auto wNumItems = *detail::bit_cast<const uint32_t *>(&iData[4 ]);
489- init (wNumItems, wNodeSize);
490-
491488 mData .insert (mData .begin (), iData, iData + iSize);
489+ init (wNumItems, wNodeSize);
492490 mPosition = mLevelBounds .empty () ? 0UL : mLevelBounds .back ();
491+
493492 if (mPosition > 0UL ) {
494493 mBounds = mBoxes [mPosition - 1UL ];
495494 }
@@ -499,10 +498,10 @@ template <typename ArrayType>
499498Flatbush<ArrayType>::Flatbush(std::vector<uint8_t >&& iData) noexcept {
500499 const auto wNodeSize = *detail::bit_cast<const uint16_t *>(&iData.at (2 ));
501500 const auto wNumItems = *detail::bit_cast<const uint32_t *>(&iData.at (4 ));
502- init (wNumItems, wNodeSize);
503-
504501 mData = std::move (iData);
502+ init (wNumItems, wNodeSize);
505503 mPosition = mLevelBounds .empty () ? 0UL : mLevelBounds .back ();
504+
506505 if (mPosition > 0UL ) {
507506 mBounds = mBoxes [mPosition - 1UL ];
508507 }
0 commit comments