26 |
26 |
27 import sun.jvm.hotspot.code.*; |
27 import sun.jvm.hotspot.code.*; |
28 |
28 |
29 public class OopMapStream { |
29 public class OopMapStream { |
30 private CompressedReadStream stream; |
30 private CompressedReadStream stream; |
31 private OopMap oopMap; |
31 private ImmutableOopMap oopMap; |
32 private int mask; |
32 private int mask; |
33 private int size; |
33 private int size; |
34 private int position; |
34 private int position; |
35 private OopMapValue omv; |
35 private OopMapValue omv; |
36 private boolean omvValid; |
36 private boolean omvValid; |
37 |
37 |
38 public OopMapStream(OopMap oopMap) { |
38 public OopMapStream(ImmutableOopMap oopMap) { |
39 this(oopMap, (OopMapValue.OopTypes[]) null); |
39 this(oopMap, (OopMapValue.OopTypes[]) null); |
40 } |
40 } |
41 |
41 |
42 public OopMapStream(OopMap oopMap, OopMapValue.OopTypes type) { |
42 public OopMapStream(ImmutableOopMap oopMap, OopMapValue.OopTypes type) { |
43 this(oopMap, (OopMapValue.OopTypes[]) null); |
43 this(oopMap, (OopMapValue.OopTypes[]) null); |
44 mask = type.getValue(); |
44 mask = type.getValue(); |
45 } |
45 } |
46 |
46 |
47 public OopMapStream(OopMap oopMap, OopMapValue.OopTypes[] types) { |
47 public OopMapStream(ImmutableOopMap oopMap, OopMapValue.OopTypes[] types) { |
48 if (oopMap.getOMVData() == null) { |
48 stream = new CompressedReadStream(oopMap.getData()); |
49 stream = new CompressedReadStream(oopMap.getWriteStream().getBuffer()); |
|
50 } else { |
|
51 stream = new CompressedReadStream(oopMap.getOMVData()); |
|
52 } |
|
53 mask = computeMask(types); |
49 mask = computeMask(types); |
54 size = (int) oopMap.getOMVCount(); |
50 size = (int) oopMap.getCount(); |
55 position = 0; |
51 position = 0; |
56 omv = new OopMapValue(); |
52 omv = new OopMapValue(); |
57 omvValid = false; |
53 omvValid = false; |
58 } |
54 } |
59 |
55 |