posix/fd: increment iterators by sizeof(ValueT) not byte count

This commit is contained in:
Danny Robson 2018-02-26 10:54:26 +11:00
parent db4f09628f
commit 1f270f760f

View File

@ -11,12 +11,13 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
* *
* Copyright 2017 Danny Robson <danny@nerdcruft.net> * Copyright 2017-2018 Danny Robson <danny@nerdcruft.net>
*/ */
#ifndef __CRUFT_UTIL_POSIX_FD_HPP #ifndef CRUFT_UTIL_POSIX_FD_HPP
#define __CRUFT_UTIL_POSIX_FD_HPP #define CRUFT_UTIL_POSIX_FD_HPP
#include "../debug.hpp"
#include "../view.hpp" #include "../view.hpp"
#include <sys/types.h> #include <sys/types.h>
@ -99,9 +100,12 @@ namespace util::posix {
const ValueT* const ValueT*
write (const util::view<const ValueT*> &src) write (const util::view<const ValueT*> &src)
{ {
return src.begin () + write ( const auto written = write (
&*std::data (src), std::size (src) * sizeof (ValueT) &*std::data (src), std::size (src) * sizeof (ValueT)
); );
CHECK_MOD (written, sizeof (ValueT));
return src.begin () + written / sizeof (ValueT);
} }