summaryrefslogtreecommitdiff
path: root/prism/util/pm_buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'prism/util/pm_buffer.c')
-rw-r--r--prism/util/pm_buffer.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/prism/util/pm_buffer.c b/prism/util/pm_buffer.c
index dcdf1770bb..307b55d030 100644
--- a/prism/util/pm_buffer.c
+++ b/prism/util/pm_buffer.c
@@ -152,6 +152,15 @@ pm_buffer_append_varuint(pm_buffer_t *buffer, uint32_t value) {
}
/**
+ * Append a 32-bit signed integer to the buffer as a variable-length integer.
+ */
+void
+pm_buffer_append_varsint(pm_buffer_t *buffer, int32_t value) {
+ uint32_t unsigned_int = ((uint32_t)(value) << 1) ^ ((uint32_t)(value >> 31));
+ pm_buffer_append_varuint(buffer, unsigned_int);
+}
+
+/**
* Concatenate one buffer onto another.
*/
void