Module Name:    src
Committed By:   rillig
Date:           Thu Aug 13 04:25:09 UTC 2020

Modified Files:
        src/usr.bin/make: buf.h

Log Message:
make(1): convert Buf_AddByte to inline function

This lets the compiler decide whether to actually inline the code (which
it does).  It also provides better type safety and avoids a few
underscores and parentheses in the code.


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/usr.bin/make/buf.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/buf.h
diff -u src/usr.bin/make/buf.h:1.24 src/usr.bin/make/buf.h:1.25
--- src/usr.bin/make/buf.h:1.24	Thu Aug 13 04:12:13 2020
+++ src/usr.bin/make/buf.h	Thu Aug 13 04:25:09 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: buf.h,v 1.24 2020/08/13 04:12:13 rillig Exp $	*/
+/*	$NetBSD: buf.h,v 1.25 2020/08/13 04:25:09 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -93,22 +93,27 @@ typedef struct Buffer {
 #define __predict_false(x) (x)
 #endif
 
-/* Buf_AddByte adds a single byte to a buffer. */
-#define	Buf_AddByte(bp, byte) do { \
-	size_t _count = ++(bp)->count; \
-	char *_ptr; \
-	if (__predict_false(_count >= (bp)->size)) \
-		Buf_Expand_1(bp); \
-	_ptr = (bp)->buffer + _count; \
-	_ptr[-1] = (byte); \
-	_ptr[0] = 0; \
-    } while (0)
-
-#define BUF_ERROR 256
+void Buf_Expand_1(Buffer *);
 
-#define Buf_Size(bp) ((bp)->count)
+/* Buf_AddByte adds a single byte to a buffer. */
+static inline void
+Buf_AddByte(Buffer *bp, char byte)
+{
+    size_t count = ++bp->count;
+    char *ptr;
+    if (__predict_false(count >= bp->size))
+	Buf_Expand_1(bp);
+    ptr = bp->buffer + count;
+    ptr[-1] = byte;
+    ptr[0] = 0;
+}
+
+static inline size_t
+Buf_Size(const Buffer *bp)
+{
+    return bp->count;
+}
 
-void Buf_Expand_1(Buffer *);
 void Buf_AddBytes(Buffer *, const char *, size_t);
 void Buf_AddBytesBetween(Buffer *, const char *, const char *);
 void Buf_AddStr(Buffer *, const char *);

Reply via email to