src/os/linux/vm/perfMemory_linux.cpp

Print this page
rev 5913 : Linux code cleanup

*** 1,7 **** /* ! * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 889,901 **** if (luser != user) FREE_C_HEAP_ARRAY(char, luser, mtInternal); FREE_C_HEAP_ARRAY(char, dirname, mtInternal); FREE_C_HEAP_ARRAY(char, filename, mtInternal); // open the shared memory file for the give vmid ! fd = open_sharedmem_file(rfilename, file_flags, CHECK); ! assert(fd != OS_ERR, "unexpected value"); if (*sizep == 0) { size = sharedmem_filesize(fd, CHECK); } else { size = *sizep; } --- 889,909 ---- if (luser != user) FREE_C_HEAP_ARRAY(char, luser, mtInternal); FREE_C_HEAP_ARRAY(char, dirname, mtInternal); FREE_C_HEAP_ARRAY(char, filename, mtInternal); // open the shared memory file for the give vmid ! fd = open_sharedmem_file(rfilename, file_flags, THREAD); + if (fd == OS_ERR) { + return; + } + + if (HAS_PENDING_EXCEPTION) { + ::close(fd); + return; + } + if (*sizep == 0) { size = sharedmem_filesize(fd, CHECK); } else { size = *sizep; }