10 Commits

Author SHA1 Message Date
Nicholas Nethercote
d8fc746ba4 64-bit cleanness: Yet more UInt-->SizeT changes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2910
2004-11-03 18:10:37 +00:00
Nicholas Nethercote
193367181b Must remember to edit the original file, not the generated one...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2885
2004-10-31 18:58:05 +00:00
Tom Hughes
52eb188b93 Back-out accidental commit.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2791
2004-10-18 17:35:35 +00:00
Tom Hughes
25725b8d8b Make statically initialised read-write locks work.
BUG: 91604


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2790
2004-10-18 17:34:43 +00:00
Nicholas Nethercote
fef3e74483 Remove unnecessary #include statement.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2646
2004-09-02 08:18:07 +00:00
Robert Walsh
ef335b7ad1 Fix some vg_include.h references.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2644
2004-09-02 00:31:02 +00:00
Nicholas Nethercote
9033020ae4 Big overhaul of the allocator. Much of the structure is the same, but
lots of the details changed.  Made the following generalisations:

- Recast everything to be entirely terms of bytes, instead of a mixture
  of (32-bit) words and bytes.  This is a bit easier to understand, and
  made the following generalisations possible...

- Almost 64-bit clean;  no longer assuming 32-bit words/pointers.  Only
  (I think) non-64-bit clean part is that VG_(malloc)() et al take an
  Int as the size arg, and size_t is 64-bits on 64-bit machines.

- Made the alignment of blocks returned by malloc() et al completely
  controlled by a single value, VG_MIN_MALLOC_SZB.  (Previously there
  were various magic numbers and assumptions about block alignment
  scattered throughout.) I tested this, all the regression tests pass
  with VG_MIN_MALLOC_SZB of 4, 8, 16, 32, 64.  One thing required for
  this was to make redzones elastic;  the asked-for redzone size is now
  the minimum size;  it will use bigger ones if necessary to get the
  required alignment.

Some other specific changes:

- Made use of types a bit more;  ie. actually using the type 'Block',
  rather than just having everything as arrays of words, so that should
  be a bit safer.

- Removed the a->rz_check field, which was redundant wrt. a->clientmem.

- Fixed up the decision about which list to use so the 4 lists which
  weren't ever being used now are -- the problem was that this hasn't
  been properly updated when alignment changed from 4 to 8 bytes.

- Added a regression test for memalign() and posix_memalign().
  memalign() was aborting if passed a bad alignment argument.

- Added some high-level comments in various places, explaining how the
  damn thing works.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2579
2004-08-11 09:40:52 +00:00
Nicholas Nethercote
8c7d281811 If new/new[] fails and should throw an exception, abort instead, since we can't
throw exceptions.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2484
2004-07-15 16:28:36 +00:00
Nicholas Nethercote
7aec353eea Intercept 'nothrow' versions of delete and delete[].
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2481
2004-07-14 15:38:06 +00:00
Robert Walsh
f7e7e4ba37 Fix bug 73655.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2371
2004-04-16 23:02:29 +00:00