Граф коммитов

40 Коммитов

Автор SHA1 Сообщение Дата
Nathan Froyd 9f5a543f01 Bug 1452657 - rename IPDL-private Shmem token struct to something more professional; r=mccr8
Brevity is the soul of wit.
2018-04-17 10:05:30 -04:00
Alex Gaynor b5a231f297 Bug 1445249 - Part 1 - Remove unused aProcessId parameter when deleting shared memory; r=jld
MozReview-Commit-ID: Cn0q46Q67hd

--HG--
extra : rebase_source : 7f963216e3c73118ae761dc8aa961cb120255481
2018-03-13 10:07:18 -04:00
Nika Layzell acff444d08 Bug 1440511 - Part 5: Move all serialization logic into an IPDLParamTraits impl for Shmem, r=froydnj
MozReview-Commit-ID: DsrfSVPgoo1
2018-03-05 16:00:02 -05:00
Nathan Froyd a697f87d36 Bug 1397823 - part 3 - do a better job setting IPC::Message flags; r=kanru
The current IPC::Message constructor takes a large number of arguments,
three of which--the nesting level, the priority, and the
compression--are almost always constant by virtue of the vast majority
of Message construction being done by auto-generated IPDL code.  But
then we take these constant values into the Message constructor, we
check them for various values, and then based on those values, we
perform a bunch of bitfield operations to store flags based on those
values.  This is wasted work.

Furthermore, for replies to IPDL messages, we'll construct a Message
object, and then call mutating setters on the Message object that will
perform even more bitfield manipulations.  Again, these operations are
performing tasks at runtime that are the same every single time, and use
information we already have at compile time.

The impact of these extra operations is not large, maybe 15-30K of extra
code, depending on platform.  Nonetheless, we can easily make them go
away, and make everything cleaner to boot.

This patch adds a HeaderFlags class that encapsulates all the knowledge
about the various kinds of flags Message needs to know about.  We can
construct HeaderFlags objects with strongly-typed enum arguments for the
various kinds of flags, and the compiler can take care of folding all of
those flags together into a constant when possible (and it is possible
for all the IPDL-generated code that instantiates Messages).  The upshot
is that we do no unnecessary work in the Message constructor itself.  We
can also remove various mutating operations on Message, as those
operations were only there to support post-constructor flag twiddling,
which is no longer necessary.
2017-09-15 08:06:11 -04:00
Henry Chang 6d648badcb Bug 1348591 - Support custom default segment buffer list size. r=billm
MozReview-Commit-ID: 2Nkj6RPx62f

--HG--
extra : rebase_source : 4e763563e3f9e9927314e804ba4e0fbd291fc9e8
2017-06-21 17:55:13 +08:00
Bill McCloskey f478d1188c Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 20:34:54 -07:00
Bill McCloskey b83db28a45 Revert "Bug 1306708 - Rename prio to nested in IPDL (r=dvander)" on a CLOSED TREE
This reverts commit b1460c626078afbb9290e7d9ecaf3af605d5e893.
2016-10-04 15:55:19 -07:00
Bill McCloskey eddd80027c Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 15:28:14 -07:00
Kan-Ru Chen b6d880aca1 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES


--HG--
rename : mfbt/unused.h => mfbt/Unused.h
2016-08-24 14:47:04 +08:00
Cervantes Yu 28706c5d87 Bug 1275398 - Use shmem for sending image data in IPCDataTransfer. r=nical
MozReview-Commit-ID: 9XETnSBXxEW
2016-06-16 00:57:46 +08:00
Andrew McCreight 5848fe3b73 Bug 1276318, part 2 - Fix mode lines in ipc/glue. r=billm
MessageChannel.{h,cpp}, MessageLink.{h,cpp}, and ProtocolUtils.h are
using 4-space indent so I left those alone.
2016-05-27 14:54:31 -07:00
Bill McCloskey 291c555f34 Bug 1262671 - void** -> PickleIterator (r=froydnj) 2016-05-27 09:57:38 -07:00
Lee Salzman d4c87aeb45 Bug 1245241 - part 2 - remove TYPE_SYSV Shmems from IPDL. r=billm 2016-02-18 10:56:15 -05:00
Lee Salzman 41d307c324 Bug 1245241 - part 1 - Close Shmem file handles after mapping them when possible to reduce exhaustion issues. r=billm 2016-02-18 10:56:15 -05:00
Lee Salzman b16506b7f1 Bug 1247429 - Warn instead of error if shmem deallocated before IPDL sends it. r=nical 2016-02-16 14:59:01 -05:00
Birunthan Mohanathas 9985829ecc Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
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
2015-10-18 01:24:48 -04:00
Bob Owen e4f543bb58 Bug 1119878 Part 2: Change IPC code to hold ProcessID instead of ProcessHandle. r=billm, r=dvander, r=aklotz, r=cpearce 2015-04-01 09:40:35 +01:00
Nicholas Nethercote 242708cf72 Bug 1127201 (attempt 2, part 1) - Replace most NS_ABORT_IF_FALSE calls with MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 488e401ff87e31a2074c4108c4df0572d9536667
2015-02-09 14:34:50 -08:00
Andrew McCreight d3826daa16 Back out Bug 1127201 (part 2) for various problems. 2015-02-06 15:04:32 -08:00
Nicholas Nethercote d34f0301b8 Bug 1127201 (part 2) - Convert all NS_ABORT_IF_FALSE calls to MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 99182e70335d2b5ff95f8c528ae992d37294be3a
2015-02-04 20:05:36 -08:00
Andrew McCreight c95e487200 Bug 1038966, part 3 - Shmem should use refcounted pointer classes when creating SharedMemory. r=bent 2014-07-25 16:41:25 -07:00
Andrew McCreight de19994a7f Bug 1038853 - Use nullptr instead of 0 in Shmem.h and Shmem.cpp. r=bent 2014-07-15 16:51:44 -07:00
Chris Lord 5c57498fbc Bug 1012639 - Fix OtherProcess sometimes being the current process handle. r=bent 2014-06-11 14:51:12 +01:00
Benoit Jacob c8a84fe3fa Bug 974353 - In OpenExisting, check that the IPC-passed Shmem size matches the size stored in the SharedMemory header. And don't leak the segment on error. - r=bent 2014-02-26 14:10:55 -05:00
Benoit Jacob 0a4df845e2 Bug 968823 - Make Shmem gracefully handle errors instead of just aborting - r=bent 2014-02-24 22:21:48 -05:00
Isaac Aggrey 481e7dfb0b Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Ms2ger 711f1fd480 Bug 787933 - Stop using stdin types in IPC code; r=bsmedberg+cjones sr=cjones 2012-09-17 10:37:20 +02:00
Aryeh Gregor d0ad5a7d0c Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Gervase Markham 82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Makoto Kato 983ca66ea7 Bug 657129 - Flash x64 Crash on GMail. r=cjones 2011-08-26 09:59:57 +09:00
Daniel Holbert 9c717d372d Bug 666989: Fix unused-but-set GCC 4.6 warning in Shmem::AssertInvariants. r=cjones 2011-06-24 14:01:30 -07:00
Chris Jones d1fddc9cfc Bug 605362, part 1: Allocate page-aligned shmem segments in ShmImage, to match other allocators which more honestly report address space and system mem taken by alloc. r=joe 2010-11-05 02:17:07 -05:00
Chris Jones 270620d210 Bug 598866, part 1: Add library support for an "unsafe" Shmem variant. r=joe 2010-11-05 02:17:07 -05:00
Josh Aas e14ca98532 Bug 599059: Always store length at the end of shared memory segments as a 32-bit value. Don't use "sizeof(size_t)" because that differs between i386 and x86_64 and causes crashes when running i386 plugins from a x86_64 host. r=cjones a=blocking-b7 2010-09-24 02:31:47 -04:00
Josh Aas 9b2ad55f9a Bug 590857: Fix problematic usage of 'size_t' in IPC code, 'size_t' size depends on architecture and sending it via IPC directly can break cross-architecture IPC. Part of this patch was written by Ben Turner. r=cjones a=blocking-b6 2010-08-31 13:51:51 -04:00
Chris Jones e3a04f9359 Bug 562741: Refcount |SharedMemory|s. r=joedrew 2010-05-22 14:35:32 -05:00
Chris Jones c2273182da Bug 555275: Implement a DeallocShmem() interface. r=bent 2010-04-26 20:11:40 -05:00
Joe Drew ext:(%20and%20Chris%20Jones%20%3Cjones.chris.g%40gmail.com%3E) 0bd95dade4 Bug 548437: Add a SysV shmem subtype of SharedMemory. r=dougt 2010-04-16 00:29:16 -05:00
Chris Jones aea3243ee9 bug 523174: add a higher-level Shmem class that implements exclusive access rights between parent/child actors and does over/underflow checking. (Also adds a stop-gap lower-level SharedMemory class in lieu of bug 523172.) r=joedrew 2009-12-04 12:45:15 -06:00