X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketImpl.cci;h=0197b24869440870aa2e677bd640f4503b71aa49;hb=271789888cd1ae6361607616f9f4e6e460e192c4;hp=f2293a8ecce2b21a1789048f8bef56ec3bfa8f79;hpb=8d2d26f114d3df0a60c5c516fcf40671b1e55558;p=senf.git diff --git a/Packets/PacketImpl.cci b/Packets/PacketImpl.cci index f2293a8..0197b24 100644 --- a/Packets/PacketImpl.cci +++ b/Packets/PacketImpl.cci @@ -148,27 +148,32 @@ prefix_ senf::detail::PacketImpl::size_type senf::detail::PacketImpl::size() prefix_ void senf::detail::PacketImpl::insert(PacketData * self, iterator pos, byte v) { + difference_type ix (std::distance(begin(),pos)); data_.insert(pos,v); - updateIterators(self,pos,1); + updateIterators(self,ix,1); } prefix_ void senf::detail::PacketImpl::insert(PacketData * self, iterator pos, size_type n, byte v) { + difference_type ix (std::distance(begin(),pos)); data_.insert(pos,n,v); - updateIterators(self,pos,n); + updateIterators(self,ix,n); } prefix_ void senf::detail::PacketImpl::erase(PacketData * self, iterator pos) { + difference_type ix (std::distance(begin(),pos)); data_.erase(pos); - updateIterators(self,pos,-1); + updateIterators(self,ix,-1); } prefix_ void senf::detail::PacketImpl::erase(PacketData * self, iterator first, iterator last) { + difference_type ix (std::distance(begin(),first)); + difference_type delta (std::distance(first,last)); data_.erase(first,last); - updateIterators(self,first,-std::distance(first,last)); + updateIterators(self,ix,-delta); } ///////////////////////////////////////////////////////////////////////////