Revision 208 added code in bullet_pal.cpp to the destructors for palBulletBodyBase and for palBulletGeometry. These cause the same object to get deleted twice when the example program palbeginner is run.It causes the program to abort:
*** glibc detected *** ../bin/palbeginner: double free or corruption (out): 0x0000000015e33140 ***
======= Backtrace: =========
/lib64/libc.so.6[0x36e42722ef]
/lib64/libc.so.6(cfree+0x4b)[0x36e427273b]
/home/clong/working/pal/trunk/lib/libpal_bullet.so(_ZN17palBulletBodyBaseD2Ev+0x155)[0x2b14ae3dda4b]
/home/clong/working/pal/trunk/lib/libpal_bullet.so(_ZN12palBulletBoxD0Ev+0x1fc)[0x2b14ae402d9c]
/home/clong/working/pal/trunk/lib/libpal.so(_ZN10palFactory7CleanupEv+0x1c0)[0x2b14ae10c228]
../bin/palbeginner(main+0x247)[0x4017bf]
/lib64/libc.so.6(__libc_start_main+0xf4)[0x36e421d994]
../bin/palbeginner(__gxx_personality_v0+0x61)[0x4014c9]
======= Memory map: ========
00400000-00403000 r-xp 00000000 08:13 9307610 /home/clong/working/pal/trunk/bin/palbeginner
00602000-00603000 rw-p 00002000 08:13 9307610 /home/clong/working/pal/trunk/bin/palbeginner
15e2b000-15e4c000 rw-p 15e2b000 00:00 0 [heap]
36e3c00000-36e3c1c000 r-xp 00000000 08:13 17465369 /lib64/ld-2.5.so
36e3e1b000-36e3e1c000 r--p 0001b000 08:13 17465369 /lib64/ld-2.5.so
36e3e1c000-36e3e1d000 rw-p 0001c000 08:13 17465369 /lib64/ld-2.5.so
36e4200000-36e434d000 r-xp 00000000 08:13 17465371 /lib64/libc-2.5.so
36e434d000-36e454d000 ---p 0014d000 08:13 17465371 /lib64/libc-2.5.so
36e454d000-36e4551000 r--p 0014d000 08:13 17465371 /lib64/libc-2.5.so
36e4551000-36e4552000 rw-p 00151000 08:13 17465371 /lib64/libc-2.5.so
36e4552000-36e4557000 rw-p 36e4552000 00:00 0
36e4600000-36e4602000 r-xp 00000000 08:13 17465548 /lib64/libdl-2.5.so
36e4602000-36e4802000 ---p 00002000 08:13 17465548 /lib64/libdl-2.5.so
36e4802000-36e4803000 r--p 00002000 08:13 17465548 /lib64/libdl-2.5.so
36e4803000-36e4804000 rw-p 00003000 08:13 17465548 /lib64/libdl-2.5.so
36e4a00000-36e4a82000 r-xp 00000000 08:13 17465595 /lib64/libm-2.5.so
36e4a82000-36e4c81000 ---p 00082000 08:13 17465595 /lib64/libm-2.5.so
36e4c81000-36e4c82000 r--p 00081000 08:13 17465595 /lib64/libm-2.5.so
36e4c82000-36e4c83000 rw-p 00082000 08:13 17465595 /lib64/libm-2.5.so
36e4e00000-36e4e16000 r-xp 00000000 08:13 17465418 /lib64/libpthread-2.5.so
36e4e16000-36e5015000 ---p 00016000 08:13 17465418 /lib64/libpthread-2.5.so
36e5015000-36e5016000 r--p 00015000 08:13 17465418 /lib64/libpthread-2.5.so
36e5016000-36e5017000 rw-p 00016000 08:13 17465418 /lib64/libpthread-2.5.so
36e5017000-36e501b000 rw-p 36e5017000 00:00 0
36eaa00000-36eaa0d000 r-xp 00000000 08:13 17465397 /lib64/libgcc_s-4.1.2-20080825.so.1
36eaa0d000-36eac0d000 ---p 0000d000 08:13 17465397 /lib64/libgcc_s-4.1.2-20080825.so.1
36eac0d000-36eac0e000 rw-p 0000d000 08:13 17465397 /lib64/libgcc_s-4.1.2-20080825.so.1
36eae00000-36eaee6000 r-xp 00000000 08:13 16948714 /usr/lib64/libstdc++.so.6.0.8
36eaee6000-36eb0e5000 ---p 000e6000 08:13 16948714 /usr/lib64/libstdc++.so.6.0.8
36eb0e5000-36eb0eb000 r--p 000e5000 08:13 16948714 /usr/lib64/libstdc++.so.6.0.8
36eb0eb000-36eb0ee000 rw-p 000eb000 08:13 16948714 /usr/lib64/libstdc++.so.6.0.8
36eb0ee000-36eb100000 rw-p 36eb0ee000 00:00 0
36eb600000-36eb615000 r-xp 00000000 08:13 17465536 /lib64/libnsl-2.5.so
36eb615000-36eb814000 ---p 00015000 08:13 17465536 /lib64/libnsl-2.5.so
36eb814000-36eb815000 r--p 00014000 08:13 17465536 /lib64/libnsl-2.5.so
36eb815000-36eb816000 rw-p 00015000 08:13 17465536 /lib64/libnsl-2.5.so
36eb816000-36eb818000 rw-p 36eb816000 00:00 0
2b14ae0a4000-2b14ae0a6000 rw-p 2b14ae0a4000 00:00 0
2b14ae0a6000-2b14ae14d000 r-xp 00000000 08:13 9306465 /home/clong/working/pal/trunk/lib/libpal.so
2b14ae14d000-2b14ae34c000 ---p 000a7000 08:13 9306465 /home/clong/working/pal/trunk/lib/libpal.so
2b14ae34c000-2b14ae359000 rw-p 000a6000 08:13 9306465 /home/clong/working/pal/trunk/lib/libpal.so
2b14ae373000-2b14ae377000 rw-p 2b14ae373000 00:00 0
2b14ae377000-2b14ae41b000 r-xp 00000000 08:13 9307608 /home/clong/working/pal/trunk/lib/Aborted
I have attached output from valgrind that shows this problem (line numbers may be slightly off due to debug printf's I put in my copy).
Output from valgrind on palbeginner