The Bluedroid configuration header for B2G is now located in the repo
of libhardware_moz, as Bluedroid drivers should not depend on Gecko's
source code. This patch removes the configuration header from Gecko.
We have a number of functions in mozilla/Endian.h for doing endianness
conversions, and these functions should be used instead of hand-rolled
functions. Using those functions in the bluetooth code makes the code
clearer and more portable (ReadLittleEndianUint16 won't do the right
thing if we're running on a big-endian processor, for instance).
Endian.h is also careful to avoid assumptions about memory alignment,
which utility functions like ReadLittleEndianUint16 don't do.
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout. The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.
CLOSED TREE makes big refactorings like this a piece of cake.
# The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
xargs perl -p -i -e '
s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
s/nsRefPtr ?</RefPtr</g; # handle declarations and variables
'
# Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h
# Handle nsRefPtr.h itself, a couple places that define constructors
# from nsRefPtr, and code generators specially. We do this here, rather
# than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
# things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
mfbt/nsRefPtr.h \
xpcom/glue/nsCOMPtr.h \
xpcom/base/OwningNonNull.h \
ipc/ipdl/ipdl/lower.py \
ipc/ipdl/ipdl/builtin.py \
dom/bindings/Codegen.py \
python/lldbutils/lldbutils/utils.py
# In our indiscriminate substitution above, we renamed
# nsRefPtrGetterAddRefs, the class behind getter_AddRefs. Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'
if [ -d .git ]; then
git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
This commit was generated using the following script, executed at the
top level of a typical source code checkout.
# Don't modify select files in mfbt/ because it's not worth trying to
# tease out the dependencies currently.
#
# Don't modify anything in media/gmp-clearkey/0.1/ because those files
# use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
grep -v 'mfbt/RefPtr.h' | \
grep -v 'mfbt/nsRefPtr.h' | \
grep -v 'mfbt/RefCounted.h' | \
grep -v 'media/gmp-clearkey/0.1/' | \
xargs perl -p -i -e '
s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#; # handle strange #includes
'
# |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'
# RefPtr.h used |byRef| for dealing with COM-style outparams.
# nsRefPtr.h uses |getter_AddRefs|.
# Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
The interfaces for registering and unregistering in |BluetoothDaemonProtocol|
were used by profile modules to call into the Setup module for registering and
unregistering themselves. Registry is now done in the profile managers, so
these interfaces are not required any longer.
This patch moves the code for registering and unregistering the
Handsfree backend module into the Handsfree manager. The respective
code in the backend itself has been removed.
The new design allows for a strict separation between Setup module
and Handsfree module.
This patch moves the code for registering and unregistering the
GATT backend module into the GATT manager. The respective code in
the backend itself has been removed.
The new design allows for a strict separation between Setup module
and GATT module.
This patch moves the code for registering and unregistering the
AVRCP backend module into the AVRCP manager. The respective code
in the backend itself has been removed.
The new design allows for a strict separation between Setup module
and AVRCP module.
This patch moves the code for registering and unregistering the
A2DP backend module into the A2DP manager. The respective code in
the backend itself has been removed.
The new design allows for a strict separation between Setup module
and A2DP module.