Wed Mar 26 01:42:48 2014 UTC ()
Fixed crash on startup.


(nat)
diff -r1.27 -r1.28 pkgsrc/emulators/mame/Makefile
diff -r1.13 -r1.14 pkgsrc/emulators/mame/Makefile.common
diff -r1.18 -r1.19 pkgsrc/emulators/mame/distinfo
diff -r0 -r1.1 pkgsrc/emulators/mame/patches/patch-src_emu_emualloc.c

cvs diff -r1.27 -r1.28 pkgsrc/emulators/mame/Makefile (expand / switch to unified diff)

--- pkgsrc/emulators/mame/Makefile 2014/02/06 10:40:19 1.27
+++ pkgsrc/emulators/mame/Makefile 2014/03/26 01:42:48 1.28
@@ -1,17 +1,18 @@ @@ -1,17 +1,18 @@
1# $NetBSD: Makefile,v 1.27 2014/02/06 10:40:19 wiz Exp $ 1# $NetBSD: Makefile,v 1.28 2014/03/26 01:42:48 nat Exp $
2 2
3DISTNAME= mame0152s 3DISTNAME= mame0152s
4PKGNAME= ${DISTNAME:S/0/-0./:S/s$//} 4PKGNAME= ${DISTNAME:S/0/-0./:S/s$//}
 5PKGREVISION= 1
5MASTER_SITES= http://mamedev.org/downloader.php?file=releases/ 6MASTER_SITES= http://mamedev.org/downloader.php?file=releases/
6 7
7COMMENT= Multiple Arcade Machine Emulator 8COMMENT= Multiple Arcade Machine Emulator
8 9
9CONFLICTS= xmame-[0-9]* sdlmame-[0-9]* 10CONFLICTS= xmame-[0-9]* sdlmame-[0-9]*
10 11
11DOCDIR= share/doc/mame 12DOCDIR= share/doc/mame
12INSTALLATION_DIRS= bin ${DOCDIR} ${PKGMANDIR}/man1 ${PKGMANDIR}/man6 13INSTALLATION_DIRS= bin ${DOCDIR} ${PKGMANDIR}/man1 ${PKGMANDIR}/man6
13 14
14# mame source is double-zipped 15# mame source is double-zipped
15post-extract: 16post-extract:
16 cd ${WRKDIR} && ${.CURDIR}/../../mk/extract/extract mame.zip 17 cd ${WRKDIR} && ${.CURDIR}/../../mk/extract/extract mame.zip
17 rm ${WRKDIR}/mame.zip 18 rm ${WRKDIR}/mame.zip

cvs diff -r1.13 -r1.14 pkgsrc/emulators/mame/Attic/Makefile.common (expand / switch to unified diff)

--- pkgsrc/emulators/mame/Attic/Makefile.common 2014/01/25 10:30:07 1.13
+++ pkgsrc/emulators/mame/Attic/Makefile.common 2014/03/26 01:42:48 1.14
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: Makefile.common,v 1.13 2014/01/25 10:30:07 wiz Exp $ 1# $NetBSD: Makefile.common,v 1.14 2014/03/26 01:42:48 nat Exp $
2# 2#
3# used by emulators/mame/Makefile 3# used by emulators/mame/Makefile
4# used by emulators/mess/Makefile 4# used by emulators/mess/Makefile
5 5
6CATEGORIES= emulators 6CATEGORIES= emulators
7EXTRACT_SUFX= .zip 7EXTRACT_SUFX= .zip
8 8
9MAINTAINER= wiz@NetBSD.org 9MAINTAINER= wiz@NetBSD.org
10HOMEPAGE= http://www.mamedev.org/ 10HOMEPAGE= http://www.mamedev.org/
11LICENSE= mame-license 11LICENSE= mame-license
12 12
13RESTRICTED= selling is not allowed 13RESTRICTED= selling is not allowed
14NO_SRC_ON_CDROM= ${RESTRICTED} 14NO_SRC_ON_CDROM= ${RESTRICTED}
@@ -19,27 +19,27 @@ DEPENDS+= liberation-ttf-[0-9]*:../../f @@ -19,27 +19,27 @@ DEPENDS+= liberation-ttf-[0-9]*:../../f
19WRKSRC= ${WRKDIR} 19WRKSRC= ${WRKDIR}
20 20
21# separate distinfos though, so don't forget 'make mdi' when 21# separate distinfos though, so don't forget 'make mdi' when
22# adding or changing patches 22# adding or changing patches
23#PATCHDIR= ${.CURDIR}/../../emulators/mame/patches 23#PATCHDIR= ${.CURDIR}/../../emulators/mame/patches
24 24
25USE_LANGUAGES= c c++ 25USE_LANGUAGES= c c++
26USE_TOOLS+= gmake pkg-config 26USE_TOOLS+= gmake pkg-config
27UNLIMIT_RESOURCES+= datasize 27UNLIMIT_RESOURCES+= datasize
28MAKE_FILE= makefile 28MAKE_FILE= makefile
29# 0.141 has too many conversion warnings 29# 0.141 has too many conversion warnings
30MAKE_ENV= NOWERROR=1 30MAKE_ENV= NOWERROR=1
31# we don't want to pull in qt4 31# we don't want to pull in qt4
32MAKE_ENV= NO_USE_QTDEBUG=1 32MAKE_ENV+= NO_USE_QTDEBUG=1
33 33
34.include "../../mk/compiler.mk" 34.include "../../mk/compiler.mk"
35.if !empty(PKGSRC_COMPILER:Mclang) 35.if !empty(PKGSRC_COMPILER:Mclang)
36_WRAP_EXTRA_ARGS.CC+= -Wno-error=cast-align \ 36_WRAP_EXTRA_ARGS.CC+= -Wno-error=cast-align \
37 -Wno-error=constant-logical-operand \ 37 -Wno-error=constant-logical-operand \
38 -Wno-error=sometimes-uninitialized \ 38 -Wno-error=sometimes-uninitialized \
39 -Wno-error=shift-count-overflow \ 39 -Wno-error=shift-count-overflow \
40 -Wno-error=unused-private-field \ 40 -Wno-error=unused-private-field \
41 -Wno-error=tautological-constant-out-of-range-compare \ 41 -Wno-error=tautological-constant-out-of-range-compare \
42 -Wno-error=tautological-compare \ 42 -Wno-error=tautological-compare \
43 -Wno-error=self-assign-field \ 43 -Wno-error=self-assign-field \
44 -Wno-error=unused-const-variable \ 44 -Wno-error=unused-const-variable \
45 -Wno-error=unused-function 45 -Wno-error=unused-function

cvs diff -r1.18 -r1.19 pkgsrc/emulators/mame/distinfo (expand / switch to unified diff)

--- pkgsrc/emulators/mame/distinfo 2014/02/06 10:40:19 1.18
+++ pkgsrc/emulators/mame/distinfo 2014/03/26 01:42:48 1.19
@@ -1,9 +1,10 @@ @@ -1,9 +1,10 @@
1$NetBSD: distinfo,v 1.18 2014/02/06 10:40:19 wiz Exp $ 1$NetBSD: distinfo,v 1.19 2014/03/26 01:42:48 nat Exp $
2 2
3SHA1 (mame0152s.zip) = 2e11509b39c13dc1336a48a102813589b0793788 3SHA1 (mame0152s.zip) = 2e11509b39c13dc1336a48a102813589b0793788
4RMD160 (mame0152s.zip) = d8f4accbd639e085c6165374d7b7ebd427d3c4d7 4RMD160 (mame0152s.zip) = d8f4accbd639e085c6165374d7b7ebd427d3c4d7
5Size (mame0152s.zip) = 36247883 bytes 5Size (mame0152s.zip) = 36247883 bytes
 6SHA1 (patch-src_emu_emualloc.c) = 6df67d1d1aaf982444db3db65c066bc83644ae9b
6SHA1 (patch-src_emu_emualloc.h) = 22cdfbc002cda8053125ef8cedf3bcceea04deaf 7SHA1 (patch-src_emu_emualloc.h) = 22cdfbc002cda8053125ef8cedf3bcceea04deaf
7SHA1 (patch-src_emu_netlist_nl__base.h) = 9ee165f601da849a339699f560c371bc58dd0d83 8SHA1 (patch-src_emu_netlist_nl__base.h) = 9ee165f601da849a339699f560c371bc58dd0d83
8SHA1 (patch-src_emu_netlist_nl__lists.h) = d31c9cf715f66520e4a1a09584f1c52bbea74fef 9SHA1 (patch-src_emu_netlist_nl__lists.h) = d31c9cf715f66520e4a1a09584f1c52bbea74fef
9SHA1 (patch-src_emu_netlist_pstate.h) = 4f43b1c621ea7db3e8d31107e48e06acecfb841e 10SHA1 (patch-src_emu_netlist_pstate.h) = 4f43b1c621ea7db3e8d31107e48e06acecfb841e

File Added: pkgsrc/emulators/mame/patches/Attic/patch-src_emu_emualloc.c
$NetBSD: patch-src_emu_emualloc.c,v 1.1 2014/03/26 01:42:48 nat Exp $

This resolves a crash on startup.

--- src/emu/emualloc.c.orig	2013-10-15 22:14:50.000000000 +0000
+++ src/emu/emualloc.c
@@ -266,6 +266,11 @@ void resource_pool::add(resource_pool_it
 	memory_entry *entry = memory_entry::find(item.m_ptr);
 	if (entry == NULL)
 		entry = memory_entry::find(reinterpret_cast<UINT8 *>(item.m_ptr) - sizeof(size_t));
+	if (entry == NULL) {
+		osd_lock_release(m_listlock);
+		return;
+	}
+
 	assert(entry != NULL);
 	item.m_id = entry->m_id;
 	if (LOG_ALLOCS)