macros.h
changeset 1304 6460f4c8600e
parent 1247 3851739bfd09
child 1305 8897415254ca
equal deleted inserted replaced
1303:14334a84dcbf 1304:6460f4c8600e
    24 static inline int clamp(int a, int min, int max) { if (a <= min) return min; if (a >= max) return max; return a; }
    24 static inline int clamp(int a, int min, int max) { if (a <= min) return min; if (a >= max) return max; return a; }
    25 static inline int clamp2(int a, int min, int max) { if (a <= min) a=min; if (a >= max) a=max; return a; }
    25 static inline int clamp2(int a, int min, int max) { if (a <= min) a=min; if (a >= max) a=max; return a; }
    26 static inline bool int32_add_overflow(int32 a, int32 b) { return (int32)(a^b)>=0 && (int32)(a^(a+b))<0; }
    26 static inline bool int32_add_overflow(int32 a, int32 b) { return (int32)(a^b)>=0 && (int32)(a^(a+b))<0; }
    27 static inline bool int32_sub_overflow(int32 a, int32 b) { return (int32)(a^b)<0 && (int32)(a^(a-b))<0; }
    27 static inline bool int32_sub_overflow(int32 a, int32 b) { return (int32)(a^b)<0 && (int32)(a^(a-b))<0; }
    28 
    28 
    29 static inline bool str_eq(const byte *a, const byte *b)
       
    30 {
       
    31 	int i=0;
       
    32 	while (a[i] == b[i]) {
       
    33 		if (a[i] == 0)
       
    34 			return true;
       
    35 		i++;
       
    36 	}
       
    37 	return false;
       
    38 }
       
    39 
    29 
    40 // Will crash if strings are equal
    30 // Will crash if strings are equal
    41 static inline bool str_is_below(byte *a, byte *b) {
    31 static inline bool str_is_below(byte *a, byte *b) {
    42 	while (*a <= *b) {
    32 	while (*a <= *b) {
    43 		if (*a < *b) return true;
    33 		if (*a < *b) return true;