src: handle uv_async_init() failure
Fix CHECKED_RETURN, RESOURCE_LEAK) and UNINIT Coverity warnings in MarkGarbageCollectionEnd(). PR-URL: https://github.com/nodejs/node/pull/15458 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
parent
b210d61869
commit
dce2738a91
@ -212,13 +212,14 @@ void MarkGarbageCollectionEnd(Isolate* isolate,
|
|||||||
v8::GCCallbackFlags flags,
|
v8::GCCallbackFlags flags,
|
||||||
void* data) {
|
void* data) {
|
||||||
Environment* env = static_cast<Environment*>(data);
|
Environment* env = static_cast<Environment*>(data);
|
||||||
uv_async_t *async = new uv_async_t;
|
uv_async_t* async = new uv_async_t(); // coverity[leaked_storage]
|
||||||
|
if (uv_async_init(env->event_loop(), async, PerformanceGCCallback))
|
||||||
|
return delete async;
|
||||||
async->data =
|
async->data =
|
||||||
new PerformanceEntry::Data(env, "gc", "gc",
|
new PerformanceEntry::Data(env, "gc", "gc",
|
||||||
performance_last_gc_start_mark_,
|
performance_last_gc_start_mark_,
|
||||||
PERFORMANCE_NOW(), type);
|
PERFORMANCE_NOW(), type);
|
||||||
uv_async_init(env->event_loop(), async, PerformanceGCCallback);
|
CHECK_EQ(0, uv_async_send(async));
|
||||||
uv_async_send(async);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void SetupGarbageCollectionTracking(Environment* env) {
|
inline void SetupGarbageCollectionTracking(Environment* env) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user