+added a weak reference count overflow error.
This commit is contained in:
parent
cc1ef81c1f
commit
4fb0301c23
@ -281,6 +281,7 @@ static const char* _ERR_DESC[] = {
|
|||||||
"Empty collection",
|
"Empty collection",
|
||||||
"Referenced type expected",
|
"Referenced type expected",
|
||||||
"Reference count overflow",
|
"Reference count overflow",
|
||||||
|
"Weak reference count overflow",
|
||||||
"Debug identifier not found",
|
"Debug identifier not found",
|
||||||
"Stack trace disabled",
|
"Stack trace disabled",
|
||||||
/** Extended abort */
|
/** Extended abort */
|
||||||
@ -5732,6 +5733,7 @@ static _ref_count_t _ref(_ref_t* ref, void* data) {
|
|||||||
++(*ref->count);
|
++(*ref->count);
|
||||||
if(before > *ref->count) {
|
if(before > *ref->count) {
|
||||||
mb_assert(0 && "Too many referencing, count overflow, please redefine _ref_count_t.");
|
mb_assert(0 && "Too many referencing, count overflow, please redefine _ref_count_t.");
|
||||||
|
|
||||||
_handle_error_now(ref->s, SE_RN_REFERENCE_COUNT_OVERFLOW, ref->s->last_error_file, MB_FUNC_ERR);
|
_handle_error_now(ref->s, SE_RN_REFERENCE_COUNT_OVERFLOW, ref->s->last_error_file, MB_FUNC_ERR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5771,7 +5773,11 @@ static _ref_count_t _weak_ref(_ref_t* ref, void* data, _ref_t* weak) {
|
|||||||
mb_unrefvar(data);
|
mb_unrefvar(data);
|
||||||
|
|
||||||
++(*ref->weak_count);
|
++(*ref->weak_count);
|
||||||
mb_assert(*ref->weak_count > before && "Too many referencing, weak count overflow, please redefine _ref_count_t.");
|
if(before > *ref->weak_count) {
|
||||||
|
mb_assert(0 && "Too many referencing, weak count overflow, please redefine _ref_count_t.");
|
||||||
|
|
||||||
|
_handle_error_now(ref->s, SE_RN_WEAK_REFERENCE_COUNT_OVERFLOW, ref->s->last_error_file, MB_FUNC_ERR);
|
||||||
|
}
|
||||||
memcpy(weak, ref, sizeof(_ref_t));
|
memcpy(weak, ref, sizeof(_ref_t));
|
||||||
|
|
||||||
return *ref->weak_count;
|
return *ref->weak_count;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user