nir/spirv: Move CF emit code into vtn_cfg.c
[mesa.git] / src / glsl / blob.c
index a4003cf71784c9ceabe4b0c19478260b1e69d5b9..dd4341be961df45602500f22ff1908b46a88e983 100644 (file)
@@ -100,6 +100,21 @@ blob_create(void *mem_ctx)
    return blob;
 }
 
+bool
+blob_overwrite_bytes(struct blob *blob,
+                     size_t offset,
+                     const void *bytes,
+                     size_t to_write)
+{
+   /* Detect an attempt to overwrite data out of bounds. */
+   if (offset < 0 || blob->size - offset < to_write)
+      return false;
+
+   memcpy(blob->data + offset, bytes, to_write);
+
+   return true;
+}
+
 bool
 blob_write_bytes(struct blob *blob, const void *bytes, size_t to_write)
 {
@@ -134,6 +149,14 @@ blob_write_uint32(struct blob *blob, uint32_t value)
    return blob_write_bytes(blob, &value, sizeof(value));
 }
 
+bool
+blob_overwrite_uint32 (struct blob *blob,
+                       size_t offset,
+                       uint32_t value)
+{
+   return blob_overwrite_bytes(blob, offset, &value, sizeof(value));
+}
+
 bool
 blob_write_uint64(struct blob *blob, uint64_t value)
 {