perf_hooks: remove useless calls in Histogram#41579
perf_hooks: remove useless calls in Histogram#41579mhdawson wants to merge 2 commits intonodejs:masterfrom
Conversation
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com>
|
I guess this might explain why the call was made ? On OSX: ../src/histogram.cc:162:5: error: ignoring return value of function declared with 'warn_unused_result' attribute [-Werror,-Wunused-result] |
|
Not sure why it did not fail locally, as seems to be reported for linux as well. Maybe my local compiler version? |
|
I think I understand what is going on here:
Our options would seem to be:
|
|
ToLocalChecked will crash if the result is empty so we'd only use that if we want to know that the Set failed versus just ignoring and continuing. |
|
No local test failures with ToLocalChecked so I think that means it's not expected that the Set can fail. |
|
@jasnell since I think you are the main contributor to this part of the code do you think I should:
Some additional explanation/discussion above. |
RaisinTen
left a comment
There was a problem hiding this comment.
This would crash if an exception is thrown between subsequent V8 calls in any of these binding functions. As a solution, instead of removing the IsEmpty() checks, we should pass on the return value of the Set() call from the lambdas and in
Lines 61 to 70 in 22792c8
while calling fn(), we should check if the returned value is an empty maybe and return early if that's the case.
|
+1 to what @RaisinTen said. If that's not an option, we should use |
|
I suggest just using |
|
Thanks, I'll look at @RaisinTen's suggestion and if that does not seem practical add the USE() |
|
Code higher up looks like get percentilesBigInt() {
if (!isHistogram(this))
throw new ERR_INVALID_THIS('Histogram');
this[kMap].clear();
this[kHandle]?.percentilesBigInt(this[kMap]);
return this[kMap];
} |
|
Returning the result of map-Set up to the JavaScript would only let us return undefined/null instead of an empty map, but I think For that reason I think just using |
Signed-off-by: Michael Dawson <mdawson@devrus.com>
|
Commit message will need updating to reflect the new approach. |
|
@RaisinTen pushed update to change to add USE() |
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
|
Landed in d86dcaa |
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: nodejs#41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect,
remove them
Signed-off-by: Michael Dawson mdawson@devrus.com