Hi everyone,
Just a heads up on some changes to static atoms that I landed a couple of days.
Static atom definitions now live in xpcom/ds/StaticAtoms.py. This script
generates nsGkAtomList.h at build time. nsGkAtomList.h is still used by
nsGkAtoms.{h,cpp} to actually define the C++ atoms and by
servo/components/style/gecko/regen_atoms.py to generate Rust definitions that
link to the C++ ones. (The move to defining these in Python will help with
later work simplifying regen_atoms.py and generating additional data to help
reference static atoms from Rust static consts.)
nsGkAtoms is now the only static atom table we have. Previously we had
separately defined atoms in nsCSSPseudoElements, nsCSSAnonBoxes, and
nsDirectoryService. These have all been merged into nsGkAtoms with prefixes on
the identifiers, e.g. nsGkAtoms::PseudoElement_before. For convenience,
accessors on nsCSSPseudoElements and nsCSSAnonBoxes to their atoms remain, but
they've become inline accessor functions, e.g. nsCSSPseudoElements::before().
If defining a new pseudo-element or anonymous box, you'll need to add an entry
to both nsCSS{PseudoElement,AnonBox}List.h and StaticAtoms.py. Assertions
check for this.
Thanks,
Cameron
_______________________________________________
dev-platform mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-platform