Closed
Bug 104172
Opened 24 years ago
Closed 19 years ago
Remove extraneous exported symbols from XPCOM
Categories
(Core :: XPCOM, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: jonsmirl, Unassigned)
References
Details
(Whiteboard: fix in hand)
Attachments
(1 file, 1 obsolete file)
|
10.68 KB,
patch
|
Details | Diff | Splinter Review |
Patch changes no behavior, only moves around export definitions to eliminate
unnecessary exported symbols.
Comment 2•24 years ago
|
||
patch looks okay, but I wonder if we are going about this the wrong way? seams
to me that we want to have a def file and have a very small list of exported
functions. but I guess this patch is somewhat orthoganal. rick, you are the
api export guru after that last patch, thoughts?
Comment 3•24 years ago
|
||
hot damn! that's great. so everything still builds and runs as before?
On a side note, I like the idea of having a list of "known exports" via a .def
file, but how hard is it to export entire classes, i.e. such as nsVoidArray or
something?
This bug is a symptom of a larger problem. Everytime a non-null {}, non-inline
function is declared in an h file a copy of the function is included in that
compilation module. This fix removes 100's of needless copies of these
functions. The NS_EXPORT problem just made these copies visible, they were
there even without the NS_EXPORT.
After this fix is in I'll go fix up a similar problem with NS_EXPORT in
content, layout, parser. I will also go inspect the h files and see if I can
spot more function declarations in them.
Comment 5•24 years ago
|
||
ok, we'll need some reviewers anyway. I think we should go ahead and get this
checked in, and tackle the larger problem that dougt talks about.
so, sr=alecf on these patches.. just need an r=? dougt?
Comment 6•24 years ago
|
||
Maybe I just don't understand enough about this problem. What is the problem
with nsProxyEvent.*. This class shouldn't isn't used outside of xpcom. Why did
it have to be touched?
Comment 7•24 years ago
|
||
just read the newsgroup postings. I would like to have jband or rick review this.
Comment 8•24 years ago
|
||
I just looked at the proxy stuff - for some reason there are lots of libraries
exporting the proxy stuff - addrbook, appcomps, imglib2, to name a few..
Attachment #53054 -
Attachment is obsolete: true
Comment 10•24 years ago
|
||
this does not build on the mac. There is some problem linker problem when
trying to link oji.
| Reporter | ||
Comment 11•24 years ago
|
||
Did I accidentally get part of this patch mixed into that big merged patch I
made?
http://bugzilla.mozilla.org/show_bug.cgi?id=104515
Why the scattering of |inline| in nsIInterfaceRequestorUtils.h and nsCOMPtr.h?
C++ section 9.3 (clause 2) or section 7.1.2 (clause 3) says they're already inline.
(And does an optimized Java plugin still work with a debug build with this patch?)
| Reporter | ||
Comment 14•24 years ago
|
||
Java plug-in still works, but I am recompiling it on my machine. Do we have to
freeze the OJI stuff forever to allow backwards binary compatibility? All the
OJI patch did was change the exported symbol name from C++ managled to C. I
thought there might be a possiblility that the Java support could be compiled
with a different C++ compiler than Mozilla. For example someone on Solaris
using a Sun supplied OJI compiled with the SUN compiler and then running a
later Mozilla compiled with GCC.
As for the inlines, in some cases with the MS compiler I get inline functions
and some case I get one copy per compilation unit. I just added them to make
sure. Anyway, the routines involved are going to be reworked into the static
XPCOM lib when that happens.
> I just added them to make sure.
Well, that code was rather clean, and I'd rather keep it that way. If they
don't do anything, could you not add them?
(And no, those nsCOMPtr methods should stay inline, they shouldn't be part of a
static XPCOM library.)
| Reporter | ||
Comment 17•24 years ago
|
||
From looking at the tinderbox logs, it looks to me like there is probably an
error in the building of OJI. OJI currently does not build correctly on Windows:
http://bugzilla.mozilla.org/show_bug.cgi?id=101410 Nobody notices this becuase
OJI rarely changes and needs to be rebuilt.
The MAC build process may have a similar bug. This could explain why Doug
didn't see a problem on his local mac; he could have built in a different
sequence and hid the OJI build problem.
Also, if these patches didn't work on the Mac in general I would have expected
to see about 50,000 link errors. Instead the only module that failed to link
was OJI.
I don't have access to a Mac so I can't track this problem down. I can verify
that the patch that was checked in worked fine on Windows.
Updated•19 years ago
|
Assignee: jonsmirl → nobody
QA Contact: scc → xpcom
Comment 18•19 years ago
|
||
Life is all different now
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•