mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8012902: remove use of global operator new - take 2
The fix of 8010992, disable use of global operator new and new[] which caused failure on some tests. This takes two of the bugs also add ALLOW_OPERATOR_NEW_USAGE to prevent crash for third party code calling operator new of jvm on certain platforms. Reviewed-by: coleenp, dholmes, zgu
This commit is contained in:
parent
b3675a00d9
commit
98151c30c8
28 changed files with 287 additions and 101 deletions
|
@ -3119,15 +3119,15 @@ static int recursiveFindType(VMTypeEntry* origtypes, const char* typeName, bool
|
|||
// Search for the base type by peeling off const and *
|
||||
size_t len = strlen(typeName);
|
||||
if (typeName[len-1] == '*') {
|
||||
char * s = new char[len];
|
||||
char * s = NEW_C_HEAP_ARRAY(char, len, mtInternal);
|
||||
strncpy(s, typeName, len - 1);
|
||||
s[len-1] = '\0';
|
||||
// tty->print_cr("checking \"%s\" for \"%s\"", s, typeName);
|
||||
if (recursiveFindType(origtypes, s, true) == 1) {
|
||||
delete [] s;
|
||||
FREE_C_HEAP_ARRAY(char, s, mtInternal);
|
||||
return 1;
|
||||
}
|
||||
delete [] s;
|
||||
FREE_C_HEAP_ARRAY(char, s, mtInternal);
|
||||
}
|
||||
const char* start = NULL;
|
||||
if (strstr(typeName, "GrowableArray<") == typeName) {
|
||||
|
@ -3138,15 +3138,15 @@ static int recursiveFindType(VMTypeEntry* origtypes, const char* typeName, bool
|
|||
if (start != NULL) {
|
||||
const char * end = strrchr(typeName, '>');
|
||||
int len = end - start + 1;
|
||||
char * s = new char[len];
|
||||
char * s = NEW_C_HEAP_ARRAY(char, len, mtInternal);
|
||||
strncpy(s, start, len - 1);
|
||||
s[len-1] = '\0';
|
||||
// tty->print_cr("checking \"%s\" for \"%s\"", s, typeName);
|
||||
if (recursiveFindType(origtypes, s, true) == 1) {
|
||||
delete [] s;
|
||||
FREE_C_HEAP_ARRAY(char, s, mtInternal);
|
||||
return 1;
|
||||
}
|
||||
delete [] s;
|
||||
FREE_C_HEAP_ARRAY(char, s, mtInternal);
|
||||
}
|
||||
if (strstr(typeName, "const ") == typeName) {
|
||||
const char * s = typeName + strlen("const ");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue