Closed Bug 1245673 Opened 4 years ago Closed 4 years ago

Remove useless NS_INT32_TO_PTR from nsTraceRefCnt

Categories

(Core :: XPCOM, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla47
Tracking Status
firefox47 --- fixed

People

(Reporter: mccr8, Assigned: mccr8)

Details

Attachments

(1 file)

DumpSerialNumbers contains this code:
   fprintf(outputFile, "%" PRIdPTR
           " @%p (%d references)\n",
           record->serialNumber,
           NS_INT32_TO_PTR(aHashEntry->key),
           record->refCount);

aHashEntry is a PLHashEntry, so key has type |const void*|.

The key is set in this line:
    PL_HashTableRawAdd(gSerialNumbers, hep, HashNumber(aPtr),
                       aPtr, static_cast<void*>(record));

The key is |aPtr|, which has type |void*|. Thus the NS_INT32_TO_PTR() call is unnecessary. It converts from void* to intptr_t to void*.
I did some light local testing and it seems okay. I didn't test the dynamic casting part but whatever.
Attachment #8715546 - Flags: review?(nfroyd)
NS_INT32_TO_PTR should be strongly typed (at least when using C++) to avoid similar problems in the future...
Comment on attachment 8715546 [details] [diff] [review]
Remove useless NS_INT32_TO_PTR from DumpSerialNumbers.

Review of attachment 8715546 [details] [diff] [review]:
-----------------------------------------------------------------

r=me assuming gcc/clang don't choke on passing |const void*| to %p.  (They shouldn't, but you never know...)
Attachment #8715546 - Flags: review?(nfroyd) → review+
https://hg.mozilla.org/mozilla-central/rev/484a836a04c1
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
You need to log in before you can comment on or make changes to this bug.