Check-in [d6ba3195e8]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Synchronized ClassInfo.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:d6ba3195e878d1066dc18f90d0225d3920e46470
User & Date: stephanie.gawroriski 2019-07-01 11:53:05
Context
2019-07-01
12:24
Add ATOMIC_COMPARE_SET_AND_GET; Add ability to generate atomic operations via assembly. check-in: 7aed923c63 user: stephanie.gawroriski tags: trunk
11:53
Synchronized ClassInfo. check-in: d6ba3195e8 user: stephanie.gawroriski tags: trunk
07:02
Backup developer notes. check-in: 30e9809e99 user: squirreljme tags: trunk, x-date-201907
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to runt/apis/cldc-compact/cc/squirreljme/jvm/ClassInfo.java.

17
18
19
20
21
22
23



24
25



26
27
28



29
30
31
32
33
34



35
36
37
38
39
40
41
42
43
44






45
46
47
48
49
50
51
52
53
54
55
56


57

58
59

60
61
62


63
64
65

66
67
68


69

70
71
72
73
74


75

76
77

78
79
80


81
82
83

84
85
86
 */
public final class ClassInfo
{
	/** The magic number which should be used. */
	public static final int MAGIC_NUMBER =
		0x4C6F7665;
	



	/** Magic number used to detect corruption. */
	public final int magic;



	
	/** The pointer to the minimized class file. */
	public final int miniptr;



	
	/** The allocation size of this class. */
	public final int size;
	
	/** The base offset for fields in this class. */
	public final int base;



	
	/** The dimensions this class uses, if it is an array. */
	public final int dimensions;
	
	/** The cell size of components if this is an array. */
	public final int cellsize;
	
	/** The super class data. */
	public final ClassInfo superclass;
	






	/** Pointer to the class object. */
	public volatile Class<?> classobjptr;
	
	/** Virtual invoke VTable. */
	public final int[] vtablevirtual;
	
	/** Special invoke VTable. */
	public final int[] vtablespecial;
	
	/**
	 * Class information constructor.
	 *


	 * @param __minip Pointer to the hardware class data in ROM.

	 * @param __sz The size of this class.
	 * @param __bz The base offset for fields.

	 * @param __dim Dimensions.
	 * @param __csz Cell size.
	 * @param __scl The super class data.


	 * @param __cop Pointer to the class object.
	 * @param __vtv Virtual invoke VTable address.
	 * @param __vts Special invoke VTable address.

	 * @since 2019/04/26
	 */
	public ClassInfo(int __minip, int __sz, int __bz, int __dim, int __csz,


		ClassInfo __scl, Class<?> __cop, int[] __vtv, int[] __vts)

	{
		// Always implicitly set magic
		this.magic = MAGIC_NUMBER;
		
		// Set


		this.miniptr = __minip;

		this.size = __sz;
		this.base = __bz;

		this.dimensions = __dim;
		this.cellsize = __csz;
		this.superclass = __scl;


		this.classobjptr = __cop;
		this.vtablevirtual = __vtv;
		this.vtablespecial = __vts;

	}
}








>
>
>


>
>
>



>
>
>






>
>
>










>
>
>
>
>
>

|




|
|




>
>

>


>



>
>


<
>


<
>
>
|
>





>
>

>


>



>
>

|
<
>


<
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

89
90
91

92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

115
116
117

 */
public final class ClassInfo
{
	/** The magic number which should be used. */
	public static final int MAGIC_NUMBER =
		0x4C6F7665;
	
	/** Self pointer. */
	public final int selfptr;
	
	/** Magic number used to detect corruption. */
	public final int magic;
	
	/** Class information flags. */
	public final int flags;
	
	/** The pointer to the minimized class file. */
	public final int miniptr;
	
	/** The pointer to the class name. */
	public final int namep;
	
	/** The allocation size of this class. */
	public final int size;
	
	/** The base offset for fields in this class. */
	public final int base;
	
	/** The number of objects in the instance fields, for GC. */
	public final int numobjects;
	
	/** The dimensions this class uses, if it is an array. */
	public final int dimensions;
	
	/** The cell size of components if this is an array. */
	public final int cellsize;
	
	/** The super class data. */
	public final ClassInfo superclass;
	
	/** Interfaces. */
	public final ClassInfo[] interfaceclasses;
	
	/** The component class. */
	public final ClassInfo componentclass;
	
	/** Pointer to the class object. */
	public final Class<?> classobjptr;
	
	/** Virtual invoke VTable. */
	public final int[] vtablevirtual;
	
	/** Virtual invoke VTable pool entries. */
	public final int[] vtablepool;
	
	/**
	 * Class information constructor.
	 *
	 * @param __sp Self pointer.
	 * @param __fl Class information flags.
	 * @param __minip Pointer to the hardware class data in ROM.
	 * @param __namep The name pointer.
	 * @param __sz The size of this class.
	 * @param __bz The base offset for fields.
	 * @param __no The number of objects in the field instance.
	 * @param __dim Dimensions.
	 * @param __csz Cell size.
	 * @param __scl The super class data.
	 * @param __icl Interface classes.
	 * @param __ccl Component class.
	 * @param __cop Pointer to the class object.
	 * @param __vtv Virtual invoke VTable address.

	 * @param __vtp Virtual invoke VTable pool addresses.
	 * @since 2019/04/26
	 */

	public ClassInfo(int __sp, int __fl, int __minip, int __namep, int __sz,
		int __bz, int __no, int __dim, int __csz, ClassInfo __scl,
		ClassInfo[] __icl, ClassInfo __ccl, Class<?> __cop, int[] __vtv,
		int[] __vtp)
	{
		// Always implicitly set magic
		this.magic = MAGIC_NUMBER;
		
		// Set
		this.selfptr = __sp;
		this.flags = __fl;
		this.miniptr = __minip;
		this.namep = __namep;
		this.size = __sz;
		this.base = __bz;
		this.numobjects = __no;
		this.dimensions = __dim;
		this.cellsize = __csz;
		this.superclass = __scl;
		this.interfaceclasses = (__icl == null ? new ClassInfo[0] : __icl);
		this.componentclass = __ccl;
		this.classobjptr = __cop;
		this.vtablevirtual = (__vtv == null ? new int[0] : __vtv);

		this.vtablepool = (__vtp == null ? new int[0] : __vtp);
	}
}