Fixed crash on startup.diff -r1.27 -r1.28 pkgsrc/emulators/mame/Makefile
(nat)
@@ -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 | |||
3 | DISTNAME= mame0152s | 3 | DISTNAME= mame0152s | |
4 | PKGNAME= ${DISTNAME:S/0/-0./:S/s$//} | 4 | PKGNAME= ${DISTNAME:S/0/-0./:S/s$//} | |
5 | PKGREVISION= 1 | |||
5 | MASTER_SITES= http://mamedev.org/downloader.php?file=releases/ | 6 | MASTER_SITES= http://mamedev.org/downloader.php?file=releases/ | |
6 | 7 | |||
7 | COMMENT= Multiple Arcade Machine Emulator | 8 | COMMENT= Multiple Arcade Machine Emulator | |
8 | 9 | |||
9 | CONFLICTS= xmame-[0-9]* sdlmame-[0-9]* | 10 | CONFLICTS= xmame-[0-9]* sdlmame-[0-9]* | |
10 | 11 | |||
11 | DOCDIR= share/doc/mame | 12 | DOCDIR= share/doc/mame | |
12 | INSTALLATION_DIRS= bin ${DOCDIR} ${PKGMANDIR}/man1 ${PKGMANDIR}/man6 | 13 | INSTALLATION_DIRS= bin ${DOCDIR} ${PKGMANDIR}/man1 ${PKGMANDIR}/man6 | |
13 | 14 | |||
14 | # mame source is double-zipped | 15 | # mame source is double-zipped | |
15 | post-extract: | 16 | post-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 |
@@ -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 | |||
6 | CATEGORIES= emulators | 6 | CATEGORIES= emulators | |
7 | EXTRACT_SUFX= .zip | 7 | EXTRACT_SUFX= .zip | |
8 | 8 | |||
9 | MAINTAINER= wiz@NetBSD.org | 9 | MAINTAINER= wiz@NetBSD.org | |
10 | HOMEPAGE= http://www.mamedev.org/ | 10 | HOMEPAGE= http://www.mamedev.org/ | |
11 | LICENSE= mame-license | 11 | LICENSE= mame-license | |
12 | 12 | |||
13 | RESTRICTED= selling is not allowed | 13 | RESTRICTED= selling is not allowed | |
14 | NO_SRC_ON_CDROM= ${RESTRICTED} | 14 | NO_SRC_ON_CDROM= ${RESTRICTED} | |
@@ -19,27 +19,27 @@ DEPENDS+= liberation-ttf-[0-9]*:../../f | @@ -19,27 +19,27 @@ DEPENDS+= liberation-ttf-[0-9]*:../../f | |||
19 | WRKSRC= ${WRKDIR} | 19 | WRKSRC= ${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 | |||
25 | USE_LANGUAGES= c c++ | 25 | USE_LANGUAGES= c c++ | |
26 | USE_TOOLS+= gmake pkg-config | 26 | USE_TOOLS+= gmake pkg-config | |
27 | UNLIMIT_RESOURCES+= datasize | 27 | UNLIMIT_RESOURCES+= datasize | |
28 | MAKE_FILE= makefile | 28 | MAKE_FILE= makefile | |
29 | # 0.141 has too many conversion warnings | 29 | # 0.141 has too many conversion warnings | |
30 | MAKE_ENV= NOWERROR=1 | 30 | MAKE_ENV= NOWERROR=1 | |
31 | # we don't want to pull in qt4 | 31 | # we don't want to pull in qt4 | |
32 | MAKE_ENV= NO_USE_QTDEBUG=1 | 32 | MAKE_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 |
@@ -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 | |||
3 | SHA1 (mame0152s.zip) = 2e11509b39c13dc1336a48a102813589b0793788 | 3 | SHA1 (mame0152s.zip) = 2e11509b39c13dc1336a48a102813589b0793788 | |
4 | RMD160 (mame0152s.zip) = d8f4accbd639e085c6165374d7b7ebd427d3c4d7 | 4 | RMD160 (mame0152s.zip) = d8f4accbd639e085c6165374d7b7ebd427d3c4d7 | |
5 | Size (mame0152s.zip) = 36247883 bytes | 5 | Size (mame0152s.zip) = 36247883 bytes | |
6 | SHA1 (patch-src_emu_emualloc.c) = 6df67d1d1aaf982444db3db65c066bc83644ae9b | |||
6 | SHA1 (patch-src_emu_emualloc.h) = 22cdfbc002cda8053125ef8cedf3bcceea04deaf | 7 | SHA1 (patch-src_emu_emualloc.h) = 22cdfbc002cda8053125ef8cedf3bcceea04deaf | |
7 | SHA1 (patch-src_emu_netlist_nl__base.h) = 9ee165f601da849a339699f560c371bc58dd0d83 | 8 | SHA1 (patch-src_emu_netlist_nl__base.h) = 9ee165f601da849a339699f560c371bc58dd0d83 | |
8 | SHA1 (patch-src_emu_netlist_nl__lists.h) = d31c9cf715f66520e4a1a09584f1c52bbea74fef | 9 | SHA1 (patch-src_emu_netlist_nl__lists.h) = d31c9cf715f66520e4a1a09584f1c52bbea74fef | |
9 | SHA1 (patch-src_emu_netlist_pstate.h) = 4f43b1c621ea7db3e8d31107e48e06acecfb841e | 10 | SHA1 (patch-src_emu_netlist_pstate.h) = 4f43b1c621ea7db3e8d31107e48e06acecfb841e |
$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)