X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Futil%2Fblob.c;h=db192146ac1f2c707c73c9127d84ee35a2fb5f3a;hb=2ef983dca61b549a9242afd9008200b231a26e90;hp=e4000334e0aee0ee7143da305445bf98980b50a2;hpb=d800bcd9b9664dbb0c8476ee628a3eb888802b87;p=mesa.git diff --git a/src/util/blob.c b/src/util/blob.c index e4000334e0a..db192146ac1 100644 --- a/src/util/blob.c +++ b/src/util/blob.c @@ -23,8 +23,8 @@ #include -#include "main/macros.h" #include "blob.h" +#include "u_math.h" #ifdef HAVE_VALGRIND #include @@ -85,7 +85,7 @@ grow_to_fit(struct blob *blob, size_t additional) static bool align_blob(struct blob *blob, size_t alignment) { - const size_t new_size = ALIGN(blob->size, alignment); + const size_t new_size = align64(blob->size, alignment); if (blob->size < new_size) { if (!grow_to_fit(blob, new_size - blob->size)) @@ -102,7 +102,7 @@ align_blob(struct blob *blob, size_t alignment) static void align_blob_reader(struct blob_reader *blob, size_t alignment) { - blob->current = blob->data + ALIGN(blob->current - blob->data, alignment); + blob->current = blob->data + align64(blob->current - blob->data, alignment); } void @@ -212,7 +212,16 @@ BLOB_WRITE_TYPE(blob_write_uint64, uint64_t) BLOB_WRITE_TYPE(blob_write_intptr, intptr_t) #define ASSERT_ALIGNED(_offset, _align) \ - assert(ALIGN((_offset), (_align)) == (_offset)) + assert(align64((_offset), (_align)) == (_offset)) + +bool +blob_overwrite_uint8 (struct blob *blob, + size_t offset, + uint8_t value) +{ + ASSERT_ALIGNED(offset, sizeof(value)); + return blob_overwrite_bytes(blob, offset, &value, sizeof(value)); +} bool blob_overwrite_uint32 (struct blob *blob,