mirror of
https://github.com/mpv-player/mpv
synced 2025-03-25 04:38:01 +00:00
bstr.h: change BSTR() from macro to inline function
Change BSTR() from a macro producing a compound literal to an inline function returning the same value. This works for all existing uses, and avoids a warning from BSTR(NULL) (the macro expansion contained strlen(NULL); this was valid code because the strlen call was never evaluated, but still triggered a GCC warning).
This commit is contained in:
parent
9790fc444e
commit
28b3cc0efe
8
bstr.h
8
bstr.h
@ -70,10 +70,14 @@ static inline struct bstr bstrdup(void *talloc_ctx, struct bstr str)
|
||||
struct bstr r = { talloc_strndup(talloc_ctx, str.start, str.len), str.len };
|
||||
return r;
|
||||
}
|
||||
|
||||
static inline struct bstr BSTR(const unsigned char *s)
|
||||
{
|
||||
return (struct bstr){(unsigned char *)s, s ? strlen(s) : 0};
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// Create bstr compound literal from null-terminated string
|
||||
#define BSTR(s) (struct bstr){(char *)(s), (s) ? strlen(s) : 0}
|
||||
// create a pair (not single value!) for "%.*s" printf syntax
|
||||
#define BSTR_P(bstr) (int)((bstr).len), (bstr).start
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user