|
22 | 22 |
|
23 | 23 | #include "JVMImage.hpp"
|
24 | 24 |
|
25 |
| -#define OMRPORT_FROM_IMAGE JVMImage::getInstance()->getPortLibrary(); |
26 |
| - |
27 | 25 | JVMImage *JVMImage::_jvmInstance = NULL;
|
28 | 26 | const UDATA JVMImage::INITIAL_IMAGE_SIZE = 1024;
|
29 | 27 |
|
30 | 28 | JVMImage::JVMImage(J9JavaVM *javaVM) :
|
31 |
| - _heap(NULL), |
| 29 | + _heap(NULL), |
32 | 30 | _currentImageSize(0),
|
33 | 31 | _isImageAllocated(false),
|
34 | 32 | _dumpFileName(NULL)
|
@@ -57,44 +55,43 @@ JVMImage::initializeMonitor()
|
57 | 55 | JVMImage *
|
58 | 56 | JVMImage::createInstance(J9JavaVM *vm)
|
59 | 57 | {
|
60 |
| - PORT_ACCESS_FROM_JAVAVM(vm); |
61 |
| - |
62 |
| - _jvmInstance = (JVMImage *)j9mem_allocate_memory(sizeof(JVMImage), J9MEM_CATEGORY_CLASSES); |
63 |
| - if (_jvmInstance != NULL) { |
64 |
| - new(_jvmInstance) JVMImage(vm); |
65 |
| - } |
66 |
| - |
67 |
| - return _jvmInstance; |
| 58 | + PORT_ACCESS_FROM_JAVAVM(vm); |
| 59 | + |
| 60 | + _jvmInstance = (JVMImage *)j9mem_allocate_memory(sizeof(JVMImage), J9MEM_CATEGORY_CLASSES); |
| 61 | + if (_jvmInstance != NULL) { |
| 62 | + new(_jvmInstance) JVMImage(vm); |
| 63 | + } |
| 64 | + |
| 65 | + return _jvmInstance; |
68 | 66 | }
|
69 | 67 |
|
70 | 68 | JVMImage *
|
71 | 69 | JVMImage::getInstance()
|
72 | 70 | {
|
73 |
| - return _jvmInstance; |
| 71 | + return _jvmInstance; |
74 | 72 | }
|
75 | 73 |
|
76 | 74 | void
|
77 | 75 | JVMImage::allocateImageMemory(J9JavaVM *vm, UDATA size)
|
78 | 76 | {
|
79 |
| - PORT_ACCESS_FROM_JAVAVM(vm); |
80 |
| - |
81 |
| - J9Heap *allocPtr = (J9Heap*)j9mem_allocate_memory(size, J9MEM_CATEGORY_CLASSES); |
82 |
| - if (allocPtr == NULL) { |
83 |
| - // Memory allocation failed |
84 |
| - return; |
85 |
| - } |
86 |
| - |
87 |
| - _heap = j9heap_create(allocPtr, size, 0); |
88 |
| - if (_heap == NULL) { |
89 |
| - // Heap creation failed |
90 |
| - j9mem_free_memory((void *) allocPtr); |
91 |
| - return; |
92 |
| - } |
93 |
| - |
94 |
| - _currentImageSize = size; |
95 |
| - _isImageAllocated = true; |
96 |
| - initializeMonitor(); |
97 |
| - |
| 77 | + PORT_ACCESS_FROM_JAVAVM(vm); |
| 78 | + |
| 79 | + J9Heap *allocPtr = (J9Heap*)j9mem_allocate_memory(size, J9MEM_CATEGORY_CLASSES); |
| 80 | + if (allocPtr == NULL) { |
| 81 | + // Memory allocation failed |
| 82 | + return; |
| 83 | + } |
| 84 | + |
| 85 | + _heap = j9heap_create(allocPtr, size, 0); |
| 86 | + if (_heap == NULL) { |
| 87 | + // Heap creation failed |
| 88 | + j9mem_free_memory((void *) allocPtr); |
| 89 | + return; |
| 90 | + } |
| 91 | + |
| 92 | + _currentImageSize = size; |
| 93 | + _isImageAllocated = true; |
| 94 | + initializeMonitor(); |
98 | 95 | }
|
99 | 96 |
|
100 | 97 | void
|
@@ -133,57 +130,57 @@ JVMImage::freeSubAllocatedMemory(void* address)
|
133 | 130 | void
|
134 | 131 | JVMImage::readImageFromFile()
|
135 | 132 | {
|
136 |
| - OMRPORT_ACCESS_FROM_OMRPORT(getPortLibrary()); |
| 133 | + OMRPORT_ACCESS_FROM_OMRPORT(getPortLibrary()); |
137 | 134 |
|
138 | 135 | // TODO: The size will need to be very large or dynamically based on whatever is written to the dump
|
139 |
| - char imageBuffer[JVMImage::INITIAL_IMAGE_SIZE]; |
140 |
| - memset(imageBuffer, 0, sizeof(imageBuffer)); |
| 136 | + char imageBuffer[JVMImage::INITIAL_IMAGE_SIZE]; |
| 137 | + memset(imageBuffer, 0, sizeof(imageBuffer)); |
141 | 138 |
|
142 |
| - intptr_t fileDescriptor = omrfile_open(_dumpFileName, EsOpenRead, 0444); |
143 |
| - if (fileDescriptor == -1) { |
144 |
| - // Failure to open file |
145 |
| - } |
| 139 | + intptr_t fileDescriptor = omrfile_open(_dumpFileName, EsOpenRead, 0444); |
| 140 | + if (fileDescriptor == -1) { |
| 141 | + // Failure to open file |
| 142 | + } |
146 | 143 |
|
147 |
| - intptr_t bytesRead = omrfile_read(fileDescriptor, imageBuffer, sizeof(imageBuffer)); |
148 |
| - if (bytesRead == -1) { |
149 |
| - // Failure to read the image |
150 |
| - } |
| 144 | + intptr_t bytesRead = omrfile_read(fileDescriptor, imageBuffer, sizeof(imageBuffer)); |
| 145 | + if (bytesRead == -1) { |
| 146 | + // Failure to read the image |
| 147 | + } |
151 | 148 |
|
152 |
| - if (omrfile_close(fileDescriptor) != 0) { |
153 |
| - // Failure to close |
154 |
| - } |
| 149 | + if (omrfile_close(fileDescriptor) != 0) { |
| 150 | + // Failure to close |
| 151 | + } |
155 | 152 |
|
156 |
| - // TODO: Finally load the JVMImage using the data we read from the image |
| 153 | + // TODO: Finally load the JVMImage using the data we read from the image |
157 | 154 | }
|
158 | 155 |
|
159 | 156 | void
|
160 | 157 | JVMImage::storeImageInFile()
|
161 | 158 | {
|
162 |
| - OMRPORT_ACCESS_FROM_OMRPORT(getPortLibrary()); |
| 159 | + OMRPORT_ACCESS_FROM_OMRPORT(getPortLibrary()); |
163 | 160 |
|
164 | 161 | if (!_isImageAllocated) {
|
165 | 162 | // Nothing to dump
|
166 | 163 | }
|
167 | 164 |
|
168 |
| - intptr_t fileDescriptor = omrfile_open(_dumpFileName, EsOpenCreate | EsOpenWrite | EsOpenTruncate, 0666); |
169 |
| - if (fileDescriptor == -1) { |
170 |
| - // Failure to open file |
171 |
| - } |
| 165 | + intptr_t fileDescriptor = omrfile_open(_dumpFileName, EsOpenCreate | EsOpenWrite | EsOpenTruncate, 0666); |
| 166 | + if (fileDescriptor == -1) { |
| 167 | + // Failure to open file |
| 168 | + } |
172 | 169 |
|
173 |
| - if (omrfile_write(fileDescriptor, (void*)_heap, _currentImageSize) != (intptr_t)_currentImageSize) { |
174 |
| - // Failure to write to the file |
175 |
| - } |
| 170 | + if (omrfile_write(fileDescriptor, (void*)_heap, _currentImageSize) != (intptr_t)_currentImageSize) { |
| 171 | + // Failure to write to the file |
| 172 | + } |
176 | 173 |
|
177 |
| - if (omrfile_close(fileDescriptor) != 0) { |
178 |
| - // Failure to close |
179 |
| - } |
| 174 | + if (omrfile_close(fileDescriptor) != 0) { |
| 175 | + // Failure to close |
| 176 | + } |
180 | 177 | }
|
181 | 178 |
|
182 | 179 | extern "C" void
|
183 | 180 | create_and_allocate_jvm_image(J9JavaVM *vm)
|
184 | 181 | {
|
185 |
| - JVMImage *jvmImage = JVMImage::createInstance(vm); |
186 |
| - jvmImage->allocateImageMemory(vm, JVMImage::INITIAL_IMAGE_SIZE); |
| 182 | + JVMImage *jvmImage = JVMImage::createInstance(vm); |
| 183 | + jvmImage->allocateImageMemory(vm, JVMImage::INITIAL_IMAGE_SIZE); |
187 | 184 | }
|
188 | 185 |
|
189 | 186 | extern "C" void *
|
|
0 commit comments