The default bug view has changed. See this FAQ.

Thebes gfxPlatform.h file depends on internal api nsString.h

RESOLVED FIXED in mozilla11

Status

()

Core
Graphics
RESOLVED FIXED
6 years ago
5 years ago

People

(Reporter: David Marteau, Assigned: David Marteau)

Tracking

Trunk
mozilla11
x86
Mac OS X
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

6 years ago
Created attachment 573022 [details] [diff] [review]
gfxPlatform.patch

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0) Gecko/20100101 Firefox/8.0
Build ID: 20111104165243

Steps to reproduce:

Compile external binary xpcom component linking with xul library and using Thebes api


Actual results:

Compilation failed because gfx/thebes/gfxPlatform.h include nsString.h which require MOZILLA_INTERNAL_API (see http://hg.mozilla.org/mozilla-central/diff/7dfa2501f151/gfx/thebes/gfxPlatform.h for change log)


Expected results:

Compilation should have succeeded because Thebes is defined as an exportable api for use in external components.

Attached patch should make the job by including nsStringGlue.h instead of nsString.h which fallback to nsStringAPI.h if  MOZILLA_INTERNAL_API is not defined
Attachment #573022 - Attachment is patch: true
Please request a review of your patch.
https://developer.mozilla.org/en/Introduction#section_9
Attachment #573022 - Flags: review?(benjamin)
(Assignee)

Comment 2

6 years ago
gfxPlatform use nsString directly as arguments to method at least at two locations:

http://hg.mozilla.org/mozilla-central/file/6d42793c4807/gfx/thebes/gfxPlatform.h#l202

and

http://hg.mozilla.org/mozilla-central/file/6d42793c4807/gfx/thebes/gfxPlatform.h#l290

In the last one, the nsString could be easily replaced by a nsAString reference and thus preserving string api convention of using reference to abstract type. But in the first case I don't know if there could be a potential issue for passing a reference to nsTArray<nsString>. ( AFAIK the mapping of nsString between external and internal api should be preserved even in that case )
(Assignee)

Comment 3

6 years ago
OK, I found that references to nsString in gfxPlatform were there since a long time ago before the inclusion of nsString.h, so the patch should not have any side effects on that preexistent code (note that I currently use that patch).
Attachment #573022 - Flags: review?(benjamin) → review+
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: checkin-needed

Updated

5 years ago
Assignee: nobody → daim.project
http://hg.mozilla.org/integration/mozilla-inbound/rev/51d442cf235b
Keywords: checkin-needed
Target Milestone: --- → mozilla11
https://hg.mozilla.org/mozilla-central/rev/51d442cf235b
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.