projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
test_ctf_writer.c: put statements outside BT_ASSERT()
[babeltrace.git]
/
include
/
babeltrace
/
ref-internal.h
diff --git
a/include/babeltrace/ref-internal.h
b/include/babeltrace/ref-internal.h
index 8578de97b2ec1808eded8e9887961c1e3e7f4644..f0d973b692ec4843f90509dc29d48a40b6147ea6 100644
(file)
--- a/
include/babeltrace/ref-internal.h
+++ b/
include/babeltrace/ref-internal.h
@@
-28,7
+28,7
@@
*/
#include <babeltrace/babeltrace-internal.h>
*/
#include <babeltrace/babeltrace-internal.h>
-#include <
assert
.h>
+#include <
babeltrace/assert-internal
.h>
struct bt_object;
typedef void (*bt_object_release_func)(struct bt_object *);
struct bt_object;
typedef void (*bt_object_release_func)(struct bt_object *);
@@
-41,7
+41,7
@@
struct bt_ref {
static inline
void bt_ref_init(struct bt_ref *ref, bt_object_release_func release)
{
static inline
void bt_ref_init(struct bt_ref *ref, bt_object_release_func release)
{
-
assert
(ref);
+
BT_ASSERT
(ref);
ref->count = 1;
ref->release = release;
}
ref->count = 1;
ref->release = release;
}
@@
-49,18
+49,23
@@
void bt_ref_init(struct bt_ref *ref, bt_object_release_func release)
static inline
void bt_ref_get(struct bt_ref *ref)
{
static inline
void bt_ref_get(struct bt_ref *ref)
{
- assert(ref);
+ BT_ASSERT(ref);
+
+ if (unlikely(!ref->release)) {
+ return;
+ }
+
ref->count++;
/* Overflow check. */
ref->count++;
/* Overflow check. */
-
assert
(ref->count);
+
BT_ASSERT
(ref->count);
}
static inline
void bt_ref_put(struct bt_ref *ref)
{
}
static inline
void bt_ref_put(struct bt_ref *ref)
{
-
assert
(ref);
+
BT_ASSERT
(ref);
/* Only assert if the object has opted-in for reference counting. */
/* Only assert if the object has opted-in for reference counting. */
- if (
(--ref->count) == 0 && ref->release
) {
+ if (
unlikely((--ref->count) == 0 && ref->release)
) {
ref->release((struct bt_object *) ref);
}
}
ref->release((struct bt_object *) ref);
}
}
This page took
0.025898 seconds
and
4
git commands to generate.