X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=common%2Farray.h;h=fe3dded2074908f1ee1857627331b041665fd737;hb=913c6a51acdb1e8a6acc88fbcceac8d0a09450b7;hp=86cf3606f14a13d061bdba60d96adbadc69eaf55;hpb=d39a00392903e1a3f029ec9533abf9f11835ffd3;p=apps%2Fpfixtools.git diff --git a/common/array.h b/common/array.h index 86cf360..fe3dded 100644 --- a/common/array.h +++ b/common/array.h @@ -160,13 +160,18 @@ array_wipe(array); \ } while (0) +#define array_len(array) (array).len +#define array_size(array) (array).size +#define array_elt_len(array) sizeof(*(array).data) +#define array_byte_len(array) ((array).len * array_elt_len(array)) + #define array_lock(array) \ - ((array).locked || \ - (mlock((array).data, (array).len * sizeof(*(array).data)) == 0 \ + ((array).locked \ + || (mlock((array).data, array_byte_len(array)) == 0 \ && ((array).locked = true))) #define array_unlock(array) \ if ((array).locked) { \ - (void)munlock((array).data, (array).len * sizeof(*(array).data)); \ + (void)munlock((array).data, array_byte_len(array)); \ (array).locked = false; \ }