Closed
Bug 1505029
Opened 7 years ago
Closed 6 years ago
Calling MOZ_CAN_RUN_SCRIPT with nsCOMPtr<nsISupports> causes build error
Categories
(Developer Infrastructure :: Source Code Analysis, defect)
Developer Infrastructure
Source Code Analysis
Tracking
(firefox67 fixed)
RESOLVED
FIXED
mozilla67
Tracking | Status | |
---|---|---|
firefox67 | --- | fixed |
People
(Reporter: masayuki, Assigned: bzbarsky)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
I hit these errors:
[task 2018-11-06T10:38:22.991Z] 10:38:22 INFO - /builds/worker/workspace/build/src/editor/libeditor/HTMLEditorDataTransfer.cpp:1308:34: error: arguments must all be strong refs or parent parameters when calling a function marked as MOZ_CAN_RUN_SCRIPT (including the implicit object argument)
[task 2018-11-06T10:38:22.991Z] 10:38:22 INFO - InsertObject(bestFlavor, genericDataObj, isSafe,
[task 2018-11-06T10:38:22.991Z] 10:38:22 INFO - ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
[task 2018-11-06T10:38:22.991Z] 10:38:22 INFO - /builds/worker/workspace/build/src/editor/libeditor/HTMLEditorDataTransfer.cpp:1451:55: error: arguments must all be strong refs or parent parameters when calling a function marked as MOZ_CAN_RUN_SCRIPT (including the implicit object argument)
[task 2018-11-06T10:38:22.992Z] 10:38:22 INFO - InsertObject(NS_ConvertUTF16toUTF8(type), object, isSafe,
[task 2018-11-06T10:38:22.992Z] 10:38:22 INFO - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
[task 2018-11-06T10:38:22.992Z] 10:38:22 INFO - 2 errors generated.
https://treeherder.mozilla.org/logviewer.html#?job_id=210012990&repo=try&lineNumber=26761
InsertObject() is marked as MOZ_CAN_RUN_SCRIPT newly.
The second error is caused by this code:
nsCOMPtr<nsISupports> object;
variant->GetAsISupports(getter_AddRefs(object));
nsresult rv =
InsertObject(NS_ConvertUTF16toUTF8(type), object, isSafe,
aSourceDoc, aDroppedAt, aDoDeleteSelection);
but changing to as following, the error disappears:
nsCOMPtr<nsISupports> object;
variant->GetAsISupports(getter_AddRefs(object));
nsCOMPtr<BlobImpl> blob = do_QueryInterface(object);
nsresult rv =
InsertObject(NS_ConvertUTF16toUTF8(type), blob, isSafe,
aSourceDoc, aDroppedAt, aDoDeleteSelection);
https://treeherder.mozilla.org/logviewer.html#?job_id=210069760&repo=try&lineNumber=27645
So, nsCOMPtr<nsISupports> must be accidentally considered as non-strong ref.
Reporter | ||
Comment 1•7 years ago
|
||
FYI: The 2nd argument of InsertObject() is nsISupports*.
![]() |
Assignee | |
Comment 2•6 years ago
|
||
Updated•6 years ago
|
Attachment #9050073 -
Attachment description: Bug 1505029. Teach our static analysis about nsCOMPTr<nsISupports> being a strong ref. r=andi → Bug 1505029. Teach our static analysis about nsCOMPtr<nsISupports> being a strong ref. r=andi
Pushed by bzbarsky@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/356a982f5ba4
Teach our static analysis about nsCOMPtr<nsISupports> being a strong ref. r=mccr8
![]() |
Assignee | |
Updated•6 years ago
|
Assignee: nobody → bzbarsky
Comment 4•6 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox67:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
Updated•3 years ago
|
Product: Firefox Build System → Developer Infrastructure
You need to log in
before you can comment on or make changes to this bug.
Description
•