Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/cardTableRS.cpp @ 10130:6f817ce50129
8010992: Remove calls to global ::operator new[] and new
Summary: disable use of global operator new and new[] which could cause unexpected exception and escape from NMT tracking.
Reviewed-by: coleenp, dholmes, zgu
Contributed-by: yumin.qi@oracle.com
author | minqi |
---|---|
date | Fri, 19 Apr 2013 11:08:52 -0700 |
parents | 3c9db54c2660 |
children | 5a9fa2ba85f0 |
comparison
equal
deleted
inserted
replaced
10129:7815eaceaa8c | 10130:6f817ce50129 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
52 } | 52 } |
53 #else | 53 #else |
54 _ct_bs = new CardTableModRefBSForCTRS(whole_heap, max_covered_regions); | 54 _ct_bs = new CardTableModRefBSForCTRS(whole_heap, max_covered_regions); |
55 #endif | 55 #endif |
56 set_bs(_ct_bs); | 56 set_bs(_ct_bs); |
57 _last_cur_val_in_gen = new jbyte[GenCollectedHeap::max_gens + 1]; | 57 _last_cur_val_in_gen = NEW_C_HEAP_ARRAY3(jbyte, GenCollectedHeap::max_gens + 1, |
58 mtGC, 0, AllocFailStrategy::RETURN_NULL); | |
58 if (_last_cur_val_in_gen == NULL) { | 59 if (_last_cur_val_in_gen == NULL) { |
59 vm_exit_during_initialization("Could not last_cur_val_in_gen array."); | 60 vm_exit_during_initialization("Could not create last_cur_val_in_gen array."); |
60 } | 61 } |
61 for (int i = 0; i < GenCollectedHeap::max_gens + 1; i++) { | 62 for (int i = 0; i < GenCollectedHeap::max_gens + 1; i++) { |
62 _last_cur_val_in_gen[i] = clean_card_val(); | 63 _last_cur_val_in_gen[i] = clean_card_val(); |
63 } | 64 } |
64 _ct_bs->set_CTRS(this); | 65 _ct_bs->set_CTRS(this); |
66 } | |
67 | |
68 CardTableRS::~CardTableRS() { | |
69 if (_ct_bs) { | |
70 delete _ct_bs; | |
71 _ct_bs = NULL; | |
72 } | |
73 if (_last_cur_val_in_gen) { | |
74 FREE_C_HEAP_ARRAY(jbyte, _last_cur_val_in_gen, mtInternal); | |
75 } | |
65 } | 76 } |
66 | 77 |
67 void CardTableRS::resize_covered_region(MemRegion new_region) { | 78 void CardTableRS::resize_covered_region(MemRegion new_region) { |
68 _ct_bs->resize_covered_region(new_region); | 79 _ct_bs->resize_covered_region(new_region); |
69 } | 80 } |