ubusd: fix comparison of integers of different signs
Fixes following clang-9 compiler warning: ubusd.c:36:19: error: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Werror,-Wsign-compare] if (ub->refcount == ~0) { ~~~~~~~~~~~~ ^ ~~ Signed-off-by: Petr Štetiar <ynezz@true.cz>
This commit is contained in:
parent
90fb16234c
commit
d61282db56
1 changed files with 5 additions and 3 deletions
8
ubusd.c
8
ubusd.c
|
@ -30,10 +30,12 @@
|
||||||
|
|
||||||
#include "ubusd.h"
|
#include "ubusd.h"
|
||||||
|
|
||||||
|
#define USES_EXTERNAL_BUFFER ~0U
|
||||||
|
|
||||||
static struct ubus_msg_buf *ubus_msg_ref(struct ubus_msg_buf *ub)
|
static struct ubus_msg_buf *ubus_msg_ref(struct ubus_msg_buf *ub)
|
||||||
{
|
{
|
||||||
struct ubus_msg_buf *new_ub;
|
struct ubus_msg_buf *new_ub;
|
||||||
if (ub->refcount == ~0) {
|
if (ub->refcount == USES_EXTERNAL_BUFFER) {
|
||||||
new_ub = ubus_msg_new(ub->data, ub->len, false);
|
new_ub = ubus_msg_new(ub->data, ub->len, false);
|
||||||
if (!new_ub)
|
if (!new_ub)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -61,7 +63,7 @@ struct ubus_msg_buf *ubus_msg_new(void *data, int len, bool shared)
|
||||||
ub->fd = -1;
|
ub->fd = -1;
|
||||||
|
|
||||||
if (shared) {
|
if (shared) {
|
||||||
ub->refcount = ~0;
|
ub->refcount = USES_EXTERNAL_BUFFER;
|
||||||
ub->data = data;
|
ub->data = data;
|
||||||
} else {
|
} else {
|
||||||
ub->refcount = 1;
|
ub->refcount = 1;
|
||||||
|
@ -78,7 +80,7 @@ void ubus_msg_free(struct ubus_msg_buf *ub)
|
||||||
{
|
{
|
||||||
switch (ub->refcount) {
|
switch (ub->refcount) {
|
||||||
case 1:
|
case 1:
|
||||||
case ~0:
|
case USES_EXTERNAL_BUFFER:
|
||||||
if (ub->fd >= 0)
|
if (ub->fd >= 0)
|
||||||
close(ub->fd);
|
close(ub->fd);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue