Closed Bug 92576 Opened 23 years ago Closed 23 years ago

nsVoidArray -> nsAutoVoidArray, all but content/layout from 90545

Categories

(Core :: XPCOM, defect)

x86
All
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla0.9.5

People

(Reporter: jesup, Assigned: jesup)

References

Details

(Keywords: perf)

Attachments

(2 files)

All patches for nsVoidArray -> nsAutoVoidArray for modules other than content or
layout in bug 90545's second patch.  Assumes the primary patch from 90545 has
been applied.
I'll take this.  module is really various, not xpcom.
Assignee: kandrot → rjesup
Depends on: 90545
Keywords: patch, perf
Blocks: 92256
Any reason to not make nsRendericContextGTK::mStateCache a nsAutoVoidArray and
not a nsAutoVoidArray*, that way you'd cut down on yet one more allocation per
rendering context? Same goes for RDFContentSinkImpl::mContextStack?

Other than that, sr=jst
Sure, mStateCache should be a member var.  It's instantiated in the CTOR.

mContextStack I wasn't so sure about, because I didn't know how often we'd have
a push of context onto the stack.  If  we're pretty sure we always (usually) use
the context state, then no problem.
Target Milestone: --- → mozilla0.9.5
Attachment #47309 - Flags: superreview+
r=waterson on the changes in mozilla/rdf.
r= requests sent to darin, pavlov, kmcclusk, valeski, roc, and kin (for
different pieces of this patch).
Status: NEW → ASSIGNED
Regarding the transaction manager changes ... we need to keep in mind that every 
text widget in the app (form/xul textfields, textareas, file input, and 
passwords), as well as all flavors of Composer, have their own transaction 
manager, and I believe all of them have only one listener registered.

Do we really want the extra 28 bytes overhead (7 unused pointer slots) for each 
widget and Composer?
Added these to the wrong bug:

	have r=darin on netwerk/http portion via email
	For uriloader portion via email: looks fine to me, r=darin

Kin writes:
>as well as all flavors of Composer, have their own transaction 
>manager, and I believe all of them have only one listener registered.
>
>Do we really want the extra 28 bytes overhead (7 unused pointer slots) for each 
>widget and Composer?

The overhead is 0 or negative (counting memory allocator overhead/rounding),
since currently all of those with their 1 listener have space for 8 allocated
(as soon as you add the first one, it allocates space for 8).

I'm strongly considering making another AutoVoidArray class that has a different
default (1); I can't make it specified easily due to the annoyances of C++ and
member var sizes.  I also am considering allowing initializing VoidArray with an
array of any size.  However, those are for the future.
r=kmcclusk@netscape.com for change to nsViewManager.h
r=kin@netscape.com for the TransactionManager changes.
Has all reviews; will try to commit tonight
Attachment #47309 - Flags: review+
Just checked, oops: we're waiting for Pav for the GFX review and then I can
check in.
other than the fact that the gfx/src/nsImage* files no longer exist, the gfx
part looks ok to me.  r=pavlov
Fix checked in (minus the files that were removed)
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: