equal
deleted
inserted
replaced
2952 // could double check it. |
2952 // could double check it. |
2953 |
2953 |
2954 Method* moop = fr.interpreter_frame_method(); |
2954 Method* moop = fr.interpreter_frame_method(); |
2955 int max_locals = moop->max_locals(); |
2955 int max_locals = moop->max_locals(); |
2956 // Allocate temp buffer, 1 word per local & 2 per active monitor |
2956 // Allocate temp buffer, 1 word per local & 2 per active monitor |
2957 int buf_size_words = max_locals + active_monitor_count*2; |
2957 int buf_size_words = max_locals + active_monitor_count * BasicObjectLock::size(); |
2958 intptr_t *buf = NEW_C_HEAP_ARRAY(intptr_t,buf_size_words, mtCode); |
2958 intptr_t *buf = NEW_C_HEAP_ARRAY(intptr_t,buf_size_words, mtCode); |
2959 |
2959 |
2960 // Copy the locals. Order is preserved so that loading of longs works. |
2960 // Copy the locals. Order is preserved so that loading of longs works. |
2961 // Since there's no GC I can copy the oops blindly. |
2961 // Since there's no GC I can copy the oops blindly. |
2962 assert(sizeof(HeapWord)==sizeof(intptr_t), "fix this code"); |
2962 assert(sizeof(HeapWord)==sizeof(intptr_t), "fix this code"); |