Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3d88af8a authored by Nick Kralevich's avatar Nick Kralevich Committed by Android Git Automerger
Browse files

am ba2c2a8c: am cb2d0c5a: am 7015b3be: Merge "TypeHelpers.h: Don\'t underflow unsigned int"

* commit 'ba2c2a8c':
  TypeHelpers.h: Don't underflow unsigned int
parents 0e760f7e ba2c2a8c
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -131,7 +131,8 @@ int compare_type(const TYPE& lhs, const TYPE& rhs) {
template<typename TYPE> inline
void construct_type(TYPE* p, size_t n) {
    if (!traits<TYPE>::has_trivial_ctor) {
        while (n--) {
        while (n > 0) {
            n--;
            new(p++) TYPE;
        }
    }
@@ -140,7 +141,8 @@ void construct_type(TYPE* p, size_t n) {
template<typename TYPE> inline
void destroy_type(TYPE* p, size_t n) {
    if (!traits<TYPE>::has_trivial_dtor) {
        while (n--) {
        while (n > 0) {
            n--;
            p->~TYPE();
            p++;
        }
@@ -150,7 +152,8 @@ void destroy_type(TYPE* p, size_t n) {
template<typename TYPE> inline
void copy_type(TYPE* d, const TYPE* s, size_t n) {
    if (!traits<TYPE>::has_trivial_copy) {
        while (n--) {
        while (n > 0) {
            n--;
            new(d) TYPE(*s);
            d++, s++;
        }
@@ -162,12 +165,14 @@ void copy_type(TYPE* d, const TYPE* s, size_t n) {
template<typename TYPE> inline
void splat_type(TYPE* where, const TYPE* what, size_t n) {
    if (!traits<TYPE>::has_trivial_copy) {
        while (n--) {
        while (n > 0) {
            n--;
            new(where) TYPE(*what);
            where++;
        }
    } else {
        while (n--) {
        while (n > 0) {
            n--;
            *where++ = *what;
        }
    }
@@ -182,7 +187,8 @@ void move_forward_type(TYPE* d, const TYPE* s, size_t n = 1) {
    } else {
        d += n;
        s += n;
        while (n--) {
        while (n > 0) {
            n--;
            --d, --s;
            if (!traits<TYPE>::has_trivial_copy) {
                new(d) TYPE(*s);
@@ -203,7 +209,8 @@ void move_backward_type(TYPE* d, const TYPE* s, size_t n = 1) {
    {
        memmove(d,s,n*sizeof(TYPE));
    } else {
        while (n--) {
        while (n > 0) {
            n--;
            if (!traits<TYPE>::has_trivial_copy) {
                new(d) TYPE(*s);
            } else {