platform/upstream/lmdb.git
12 years agoExplicitly unlock the MDB lockfile on Windows.
Hallvard Furuseth [Mon, 15 Oct 2012 15:04:43 +0000 (17:04 +0200)]
Explicitly unlock the MDB lockfile on Windows.

12 years agomdb_env_open(): Keep mdb_env_set_flags() flags.
Hallvard Furuseth [Mon, 15 Oct 2012 15:04:11 +0000 (17:04 +0200)]
mdb_env_open(): Keep mdb_env_set_flags() flags.

12 years agoMore for mdb_env_copy().
Hallvard Furuseth [Mon, 15 Oct 2012 15:03:46 +0000 (17:03 +0200)]
More for mdb_env_copy().

Fix #define _GNU_SOURCE = 1 to match any command line -D_GNU_SOURCE.
.gitignore += mdb_copy.

12 years agoFix last commit.
Hallvard Furuseth [Mon, 15 Oct 2012 15:03:33 +0000 (17:03 +0200)]
Fix last commit.

Add flag MDB_ENV_ACTIVE instead of using the state of me_lfd.
Require MDB_RDONLY for MDB_ROFS.  Swap reader/writer mutex lock.

12 years agoSupport read access on read-only media
Howard Chu [Sat, 13 Oct 2012 11:05:00 +0000 (04:05 -0700)]
Support read access on read-only media

12 years agoSilence warning in prev commit
Howard Chu [Thu, 11 Oct 2012 23:47:56 +0000 (16:47 -0700)]
Silence warning in prev commit

12 years agoAdd mdb_copy for backing up a DB environment
Howard Chu [Thu, 11 Oct 2012 19:21:40 +0000 (12:21 -0700)]
Add mdb_copy for backing up a DB environment

12 years agoTweak MDB restrictions
Hallvard Furuseth [Wed, 3 Oct 2012 19:13:21 +0000 (21:13 +0200)]
Tweak MDB restrictions

12 years agoFix mdb_open() off-by-one error in maxdbs check
Hallvard Furuseth [Wed, 3 Oct 2012 16:08:56 +0000 (18:08 +0200)]
Fix mdb_open() off-by-one error in maxdbs check

12 years agoITS#7377 Wrap fcntl F_SETLK in EINTR loop too.
Hallvard Furuseth [Wed, 3 Oct 2012 16:06:29 +0000 (18:06 +0200)]
ITS#7377 Wrap fcntl F_SETLK in EINTR loop too.

This can happen even on local filesystems.

12 years agoITS#7377 Catch ftruncate() error
Hallvard Furuseth [Wed, 3 Oct 2012 16:06:29 +0000 (18:06 +0200)]
ITS#7377 Catch ftruncate() error

12 years agoITS#7377 Document caveats/troubeshooting.
Hallvard Furuseth [Wed, 3 Oct 2012 16:04:07 +0000 (18:04 +0200)]
ITS#7377 Document caveats/troubeshooting.

12 years agoFix prev commit
Howard Chu [Sun, 30 Sep 2012 17:01:57 +0000 (10:01 -0700)]
Fix prev commit

It only worked if the freelist was already non-empty

12 years agoFix mdb_drop
Howard Chu [Sun, 30 Sep 2012 14:49:30 +0000 (07:49 -0700)]
Fix mdb_drop

if it was the only operation in a txn, it would be ignored.

12 years agoITS#7385, check further for bad splits
Howard Chu [Thu, 27 Sep 2012 12:01:53 +0000 (05:01 -0700)]
ITS#7385, check further for bad splits

More for 48ef27b6f5c804eca6a9d27f8dd2b4ded376f8af
Our definition of "large" data item needs to be smaller to
handle more cases where a bad split is possible

12 years agoAdd MDB_GET_CURRENT
Howard Chu [Wed, 19 Sep 2012 13:15:09 +0000 (06:15 -0700)]
Add MDB_GET_CURRENT

return whatever the cursor is currently pointing at

12 years agoITS#7394 ignore WRITEMAP if RDONLY
Howard Chu [Tue, 18 Sep 2012 19:36:54 +0000 (12:36 -0700)]
ITS#7394 ignore WRITEMAP if RDONLY

12 years agoMore for 48ef27b6f5c804eca6a9d27f8dd2b4ded376f8af
Howard Chu [Mon, 17 Sep 2012 14:02:41 +0000 (07:02 -0700)]
More for 48ef27b6f5c804eca6a9d27f8dd2b4ded376f8af

page_split with newindex > split_indx

12 years agoMore for ab04c50a32275e216b82edaeeed50208cf49336b
Howard Chu [Mon, 17 Sep 2012 14:01:28 +0000 (07:01 -0700)]
More for ab04c50a32275e216b82edaeeed50208cf49336b

Use explicit MDB_RDONLY flag

12 years agoITS#7377 Catch MDB user errors.
Hallvard Furuseth [Mon, 17 Sep 2012 13:42:15 +0000 (15:42 +0200)]
ITS#7377 Catch MDB user errors.

12 years agoITS#7377 Catch MDB setup errors and clean up.
Hallvard Furuseth [Mon, 17 Sep 2012 13:42:15 +0000 (15:42 +0200)]
ITS#7377 Catch MDB setup errors and clean up.

12 years agoITS#7364 Limit mdb lock upgrade before sem_unlink.
Hallvard Furuseth [Mon, 17 Sep 2012 13:42:15 +0000 (15:42 +0200)]
ITS#7364 Limit mdb lock upgrade before sem_unlink.

Do not try shared lock when closing or after error.  Track file lock
state to decide.  Change meaning of *excl to reflect file lock state.

12 years agoITS#7364 Always sem_unlink() in mdb_env_open().
Hallvard Furuseth [Mon, 17 Sep 2012 13:42:15 +0000 (15:42 +0200)]
ITS#7364 Always sem_unlink() in mdb_env_open().

Drop the sem_unlink() error checks, which could prevent the 2nd
unlink.  Instead use O_EXCL in sem_open().

This makes "open+close the database" the API for trying to clean
away the old semaphores, if they were left behind by a previous run.

12 years agoITS#7377 Wrap sem_wait & file locks in EINTR loops
Hallvard Furuseth [Mon, 17 Sep 2012 13:42:14 +0000 (15:42 +0200)]
ITS#7377 Wrap sem_wait & file locks in EINTR loops

12 years agoRemove mdb data races. Use (txnid_t)-1 as "no ID".
Hallvard Furuseth [Mon, 17 Sep 2012 13:42:14 +0000 (15:42 +0200)]
Remove mdb data races. Use (txnid_t)-1 as "no ID".

Avoid race between numreaders++ and reading numreaders at cleanup. Make
the un-mutexed reset of reader table entry, atomic: Reset mr_pid only.

Instead check mr_pid != 0 in mdb_page_alloc()'s scan for readers.
(txnid_t)-1 as "no ID"-mark avoids a check for mr_txnid != 0.
The scan can stop when seeing an old reader.

12 years agoSave pid in MDB_env instead of repeating getpid().
Hallvard Furuseth [Mon, 17 Sep 2012 13:42:14 +0000 (15:42 +0200)]
Save pid in MDB_env instead of repeating getpid().

An open MDB environment does not survive or catch fork(),
so repeating getpid() was pointless.

12 years agoMDB_WRITEMAP needs no DSYNC descriptor (me_mfd)
Hallvard Furuseth [Mon, 17 Sep 2012 13:42:14 +0000 (15:42 +0200)]
MDB_WRITEMAP needs no DSYNC descriptor (me_mfd)

12 years agoITS#7363 Preprocessor namespace cleanup.
Hallvard Furuseth [Mon, 17 Sep 2012 13:42:14 +0000 (15:42 +0200)]
ITS#7363 Preprocessor namespace cleanup.

Rename USE_POSIX_SEM to MDB_USE_POSIX_SEM.
Separate MDB_FDATASYNC from MDB_USE_POSIX_SEM.

12 years agoMore for ab04c50a32275e216b82edaeeed50208cf49336b
Howard Chu [Mon, 17 Sep 2012 13:35:03 +0000 (06:35 -0700)]
More for ab04c50a32275e216b82edaeeed50208cf49336b

Fix typos, error code ranges

12 years agoAdd mdb_cursor_renew()
Howard Chu [Mon, 17 Sep 2012 11:41:13 +0000 (04:41 -0700)]
Add mdb_cursor_renew()

Allow cursors on read-only txns to be reused with later txns.

12 years agoShared lib should depend on pthread
Howard Chu [Mon, 17 Sep 2012 10:48:54 +0000 (03:48 -0700)]
Shared lib should depend on pthread

12 years agoAdd MDB_SET_KEY cursor op
Howard Chu [Mon, 17 Sep 2012 09:17:25 +0000 (02:17 -0700)]
Add MDB_SET_KEY cursor op

Overwrites the passed in key with the DB's key

12 years agoITS#7383 More explicit error codes
Howard Chu [Fri, 14 Sep 2012 13:05:48 +0000 (06:05 -0700)]
ITS#7383 More explicit error codes

12 years agoITS#7385 fix mdb_page_split (again)
Howard Chu [Wed, 12 Sep 2012 17:43:27 +0000 (10:43 -0700)]
ITS#7385 fix mdb_page_split (again)

More for d793594173bb5367e466134d5fe3366feeb672f6 ITS#7229

12 years agoUpdate comments, bump version
Howard Chu [Fri, 7 Sep 2012 20:40:07 +0000 (13:40 -0700)]
Update comments, bump version

Note read-write vs read-only mmap tradeoffs.

12 years agomsync should default to fully synchronous
Howard Chu [Thu, 6 Sep 2012 18:17:25 +0000 (11:17 -0700)]
msync should default to fully synchronous

12 years agoAdd msync support for WRITEMAP option
Howard Chu [Wed, 5 Sep 2012 15:40:17 +0000 (08:40 -0700)]
Add msync support for WRITEMAP option

12 years agoAdd MDB_WRITEMAP to use a writable mmap
Howard Chu [Tue, 4 Sep 2012 17:28:37 +0000 (10:28 -0700)]
Add MDB_WRITEMAP to use a writable mmap

12 years agoMore for 57b5fbea491c956ed7a4ab7d12d802de2b29455d
Howard Chu [Tue, 4 Sep 2012 13:02:26 +0000 (06:02 -0700)]
More for 57b5fbea491c956ed7a4ab7d12d802de2b29455d

Fix abort of child txn

12 years agolibmdb: Fix P_INVALID when pgno_t != unsigned long
Hallvard Furuseth [Wed, 29 Aug 2012 04:43:35 +0000 (06:43 +0200)]
libmdb: Fix P_INVALID when pgno_t != unsigned long

12 years agolibmdb: Check sem_open() against SEM_FAILED.
Hallvard Furuseth [Wed, 29 Aug 2012 04:42:52 +0000 (06:42 +0200)]
libmdb: Check sem_open() against SEM_FAILED.

12 years agoIn mdb_audit, change assert to fprintf
Howard Chu [Mon, 27 Aug 2012 21:45:16 +0000 (14:45 -0700)]
In mdb_audit, change assert to fprintf

12 years agoFix mdb_audit()
Howard Chu [Sun, 26 Aug 2012 18:05:45 +0000 (11:05 -0700)]
Fix mdb_audit()

due to a0993354a603a970889ad5c160c289ecca316f81

12 years agoITS#7369 mdb_stat: cleanup in case something went wrong.
Ondrej Kuznik [Fri, 24 Aug 2012 12:28:36 +0000 (05:28 -0700)]
ITS#7369 mdb_stat: cleanup in case something went wrong.

12 years agoITS#7369 abort txn before exiting
Howard Chu [Fri, 24 Aug 2012 12:23:55 +0000 (05:23 -0700)]
ITS#7369 abort txn before exiting

12 years agoITS#7364 also close the mutexes as needed
Howard Chu [Thu, 23 Aug 2012 06:01:19 +0000 (23:01 -0700)]
ITS#7364 also close the mutexes as needed

Otherwise a process that opens and closes an env more than once
will leak mutex handles. (WIN32/BSD)

12 years agoITS#7364 Remove POSIX semaphores when the last user closes the mdb environment.
Chris Mikkelson [Wed, 22 Aug 2012 21:51:35 +0000 (16:51 -0500)]
ITS#7364 Remove POSIX semaphores when the last user closes the mdb environment.

12 years agoITS#7363 Use posix semaphores on apple and bsd systems.
Chris Mikkelson [Wed, 22 Aug 2012 18:22:19 +0000 (13:22 -0500)]
ITS#7363 Use posix semaphores on apple and bsd systems.

12 years agoLoop thru all DBs and show their stats
Howard Chu [Thu, 16 Aug 2012 17:25:40 +0000 (10:25 -0700)]
Loop thru all DBs and show their stats

This is quick and dirty, should be integrated into mdb_stat.

12 years agoMinor cleanup
Howard Chu [Thu, 2 Aug 2012 22:56:13 +0000 (15:56 -0700)]
Minor cleanup

12 years agoWrite optimization: avoid copying unused portions of pages.
Howard Chu [Tue, 31 Jul 2012 23:03:48 +0000 (16:03 -0700)]
Write optimization: avoid copying unused portions of pages.

12 years agoFix txn_commit error check
Howard Chu [Thu, 26 Jul 2012 15:42:41 +0000 (08:42 -0700)]
Fix txn_commit error check

12 years agoFix 205bb17793e27be67098ccc80ee919165d7cb993
Howard Chu [Thu, 26 Jul 2012 14:22:52 +0000 (07:22 -0700)]
Fix 205bb17793e27be67098ccc80ee919165d7cb993

Ignore current cursor pos if it's out of bounds.

12 years agoUpdate sub-DBs before updating free list
Howard Chu [Thu, 26 Jul 2012 13:25:31 +0000 (06:25 -0700)]
Update sub-DBs before updating free list

12 years agoAppend mode should also detect keys that are too small
Howard Chu [Wed, 25 Jul 2012 19:31:08 +0000 (12:31 -0700)]
Append mode should also detect keys that are too small

12 years agoFix root split check in mdb_page_split
Howard Chu [Tue, 24 Jul 2012 11:21:40 +0000 (04:21 -0700)]
Fix root split check in mdb_page_split

12 years agoSkip unneeded calls to mdb_page_get in mdb_page_search
Howard Chu [Mon, 23 Jul 2012 11:23:49 +0000 (04:23 -0700)]
Skip unneeded calls to mdb_page_get in mdb_page_search

12 years agoLeave extra space when creating a fake page
Howard Chu [Mon, 23 Jul 2012 00:42:36 +0000 (17:42 -0700)]
Leave extra space when creating a fake page

Minimizes the number of memcpy's if additional dups are stored.

12 years agoAppend mode still needs to detect duplicates
Howard Chu [Mon, 23 Jul 2012 00:41:58 +0000 (17:41 -0700)]
Append mode still needs to detect duplicates

12 years agoAppend tweaks, page_split fixes
Howard Chu [Sat, 21 Jul 2012 13:10:02 +0000 (06:10 -0700)]
Append tweaks, page_split fixes

Append mode now does no key comparisons, input must be in sorted order.
page_split was not updating cursor parents correctly.

12 years agoMake sure cursor's DB is init'd if STALE.
Howard Chu [Tue, 17 Jul 2012 11:02:48 +0000 (04:02 -0700)]
Make sure cursor's DB is init'd if STALE.

12 years agoDon't use env-private copy of DB root nodes.
Howard Chu [Fri, 13 Jul 2012 00:04:05 +0000 (17:04 -0700)]
Don't use env-private copy of DB root nodes.

Just lookup the DB roots as needed. When many DBs are in use,
most of the copies won't be referenced in a given txn, and
there's a bad race condition in the copy routine.

12 years agoFix darwin sem_open() names
Howard Chu [Fri, 13 Jul 2012 18:57:11 +0000 (11:57 -0700)]
Fix darwin sem_open() names

Must begin with '/'

12 years agoFix ID -> MDB_ID due to 20baad4a207db5d0e84fc3a7409f216aefa59385
Howard Chu [Fri, 13 Jul 2012 18:56:29 +0000 (11:56 -0700)]
Fix ID -> MDB_ID due to 20baad4a207db5d0e84fc3a7409f216aefa59385

12 years agoWindows thread callback support
Howard Chu [Thu, 12 Jul 2012 23:50:27 +0000 (16:50 -0700)]
Windows thread callback support

12 years agoDrop me_toggle, unused
Howard Chu [Mon, 9 Jul 2012 01:24:11 +0000 (18:24 -0700)]
Drop me_toggle, unused

12 years agoRevert "libmdb: Do not use the MDB_txbody.mtb_txnid field."
Howard Chu [Mon, 9 Jul 2012 01:18:12 +0000 (18:18 -0700)]
Revert "libmdb: Do not use the MDB_txbody.mtb_txnid field."

This reverts commit 4a0b30499caab8628efcedb8be5643fead7cd17e.

12 years agoFix: avoid direct reference to meta pages
Howard Chu [Sat, 7 Jul 2012 00:38:03 +0000 (17:38 -0700)]
Fix: avoid direct reference to meta pages

Relevant info should be copied during txn_begin only.

12 years agoAdd MDB_NOMETASYNC env option.
Howard Chu [Fri, 6 Jul 2012 01:11:18 +0000 (18:11 -0700)]
Add MDB_NOMETASYNC env option.

Just a trial. This may not make sense if we decide to split the
meta pages into their own separate file, to allow meta traffic to
reside on a separate spindle.

12 years agoTweak b802bcf7040110e1f0768d9d9ffa88dabd4bd5e7
Howard Chu [Fri, 6 Jul 2012 00:43:29 +0000 (17:43 -0700)]
Tweak b802bcf7040110e1f0768d9d9ffa88dabd4bd5e7

Clarify prev commit, fix Doxygen comments broken by earlier changes

12 years agoPartial revert of 13c663f666ac28d7a72cbe644d393fc8d2dd9881
Howard Chu [Thu, 5 Jul 2012 23:40:46 +0000 (16:40 -0700)]
Partial revert of 13c663f666ac28d7a72cbe644d393fc8d2dd9881

Don't re-use free pages so soon; that leaves us vulnerable to
DB corruption if data syncs successfully but meta doesn't.

12 years agoTweak prev commit, use first unused slot
Howard Chu [Sat, 2 Jun 2012 12:26:31 +0000 (05:26 -0700)]
Tweak prev commit, use first unused slot

12 years agoFix mdb_open, re-use closed dbi slots
Howard Chu [Sat, 2 Jun 2012 12:24:47 +0000 (05:24 -0700)]
Fix mdb_open, re-use closed dbi slots

12 years agoITS#7266 fix rebalance for LEAF2 pages
Howard Chu [Wed, 9 May 2012 18:24:25 +0000 (11:24 -0700)]
ITS#7266 fix rebalance for LEAF2 pages

12 years agoMore freelist tweaks, avoid referencing freed page
Howard Chu [Wed, 9 May 2012 05:17:17 +0000 (22:17 -0700)]
More freelist tweaks, avoid referencing freed page

12 years agoFurther clarification of mdb_open()
Howard Chu [Sun, 6 May 2012 02:41:45 +0000 (19:41 -0700)]
Further clarification of mdb_open()

12 years agoITS#7251 fix Apple/Windows shared mutex naming
Howard Chu [Wed, 18 Apr 2012 22:59:54 +0000 (15:59 -0700)]
ITS#7251 fix Apple/Windows shared mutex naming

12 years agolibmdb: midl.h namespace cleanup.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:14 +0000 (07:34 +0200)]
libmdb: midl.h namespace cleanup.

Prefix ID, NOID, ID2, IDL, ID2L with 'MDB_'.
Also drop bdb from file description.

12 years agolibmdb: Simplify pick_meta() from read_meta().
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:14 +0000 (07:34 +0200)]
libmdb: Simplify pick_meta() from read_meta().

Put one call in #if MDB_DEBUG. Move DPRINTF(Using meta page #) there.

12 years agolibmdb: Simplify mdb_default_cmp. No real change.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:14 +0000 (07:34 +0200)]
libmdb: Simplify mdb_default_cmp. No real change.

12 years agolibmdb: signed meets unsigned warning cleanup
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: signed meets unsigned warning cleanup

12 years agolibmdb: MDB_FDATASYNC code cleanup.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: MDB_FDATASYNC code cleanup.

Define MDB_FDATASYNC() instead of redefining fdatasync().

12 years agolibmdb: Add C++ 'extern "C" {}' to *.h
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Add C++ 'extern "C" {}' to *.h

12 years agolibmdb: Don't open datafile twice when not needed.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Don't open datafile twice when not needed.

If the database is opened with MDB_RDONLY or MDB_NOSYNC,
instead use the same file descriptor for me_mfd and me_fd.

Also factor out Windows/Unix error handling after open.

12 years agolibmdb: Set close-on-exec flag on lockfile
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Set close-on-exec flag on lockfile

12 years agolibmdb: Do not use the MDB_txbody.mtb_txnid field.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Do not use the MDB_txbody.mtb_txnid field.

Get txn->mt_txnid from the meta page instead.  Otherwise it
and txn->mt_toggle could become inconsistent, since read-only
txns fetched both from MDB_txbody without mutex proteciton.

12 years agoFix MDB_DEBUG in last ITS#7299 commit.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
Fix MDB_DEBUG in last ITS#7299 commit.

Make DPRINTF usable in if-else.  Silence signed vs unsigned warning.

12 years agoITS#7229 more mdb_page_split tweaks
Howard Chu [Tue, 10 Apr 2012 21:05:05 +0000 (14:05 -0700)]
ITS#7229 more mdb_page_split tweaks

Also add mdb_debug/mdb_debug_start to toggle debug output at runtime

12 years agoITS#7210 fix check for freelist changes
Howard Chu [Tue, 10 Apr 2012 02:24:47 +0000 (19:24 -0700)]
ITS#7210 fix check for freelist changes

Was being fooled before because the newly malloc'd block had
the same address as the previously freed block.

12 years agoITS#7238 doc clarification
Howard Chu [Mon, 9 Apr 2012 12:01:37 +0000 (05:01 -0700)]
ITS#7238 doc clarification

12 years agoITS#7229 additional tweaks
Howard Chu [Mon, 9 Apr 2012 11:45:32 +0000 (04:45 -0700)]
ITS#7229 additional tweaks

Should probably compare nsize to pg_size/4 instead...

12 years agoITS#7230 check and strip 0 length IDLs from freelist
Howard Chu [Mon, 9 Apr 2012 11:44:08 +0000 (04:44 -0700)]
ITS#7230 check and strip 0 length IDLs from freelist

12 years agoITS#7229 more mdb_page_split fixes
Howard Chu [Sat, 7 Apr 2012 08:27:38 +0000 (01:27 -0700)]
ITS#7229 more mdb_page_split fixes

12 years agoITS#7219 fixup keysize in previous commit
Howard Chu [Wed, 4 Apr 2012 12:22:26 +0000 (05:22 -0700)]
ITS#7219 fixup keysize in previous commit

12 years agoITS#7219 fix for odd-aligned keys in mdb_update_key()
Howard Chu [Tue, 3 Apr 2012 19:24:27 +0000 (12:24 -0700)]
ITS#7219 fix for odd-aligned keys in mdb_update_key()

12 years agoITS#7210 fix leak of overflow pages in freelist
Howard Chu [Fri, 30 Mar 2012 13:36:02 +0000 (06:36 -0700)]
ITS#7210 fix leak of overflow pages in freelist

12 years agoPartial revert of prev commit
Howard Chu [Wed, 28 Mar 2012 17:44:18 +0000 (10:44 -0700)]
Partial revert of prev commit

Sub-DBs were correct before

12 years agoFix entry counts in cursor_put
Howard Chu [Wed, 28 Mar 2012 17:34:35 +0000 (10:34 -0700)]
Fix entry counts in cursor_put

when replacing an existing item

12 years agoFix uninit'd xcursor index
Howard Chu [Wed, 28 Mar 2012 16:33:06 +0000 (09:33 -0700)]
Fix uninit'd xcursor index

12 years agoAdd mfree utility to show the freelist
Howard Chu [Wed, 28 Mar 2012 16:20:18 +0000 (09:20 -0700)]
Add mfree utility to show the freelist