Check-in [12bcc22a81]

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

Overview
Comment:Mass deprecations.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | wip-springcoat-bringup
Files: files | file ages | folders
SHA1: 12bcc22a8133311e744d8b2531c5d4259553b971
User & Date: stephanie.gawroriski 2020-03-23 00:01:26
Context
2020-03-23
00:17
Add base for array viewer and simple object views. check-in: 7d82f2b57d user: stephanie.gawroriski tags: wip-springcoat-bringup
00:01
Mass deprecations. check-in: 12bcc22a81 user: stephanie.gawroriski tags: wip-springcoat-bringup
2020-03-22
22:51
Deprecate some SpringCoat thread worker methods. check-in: a8c75ba0fc user: stephanie.gawroriski tags: wip-springcoat-bringup
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to .idea/fileTemplates/code/Implemented Method Body.java.

1
throw new cc.squirreljme.runtime.cldc.debug.Debugging.todo();
|
1
throw cc.squirreljme.runtime.cldc.debug.Debugging.todo();

Changes to .idea/fileTemplates/code/New Method Body.java.

1
throw new cc.squirreljme.runtime.cldc.debug.Debugging.todo();
|
1
throw cc.squirreljme.runtime.cldc.debug.Debugging.todo();

Changes to .idea/fileTemplates/code/Overridden Method Body.java.

1
throw new cc.squirreljme.runtime.cldc.debug.Debugging.todo();
|
1
throw cc.squirreljme.runtime.cldc.debug.Debugging.todo();

Changes to .idea/fileTemplates/includes/File Header.java.

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObject.java.

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
..
70
71
72
73
74
75
76

77
78
79
80
81
82
83
..
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
118
119
120
121
122
123
124
125

126
127
128
129
130
131
132
133
134
135

136
137
138
139
140
141
142
143
144
145

146
147
148
149
150
151
152
153
154
155

156
157
158
159
160
161
162
163
164
165

166
167
168
169
170
171
172
...
177
178
179
180
181
182
183

184
185
186
187
188
189
 * @since 2018/09/15
 */
@Deprecated
public abstract class SpringArrayObject
	implements SpringObject
{
	/** The monitor for this array. */

	protected final SpringMonitor monitor =
		new SpringMonitor();
	
	/** The type of this object itself. */

	protected final SpringClass selftype;
	
	/** The component type. */

	protected final SpringClass component;
	
	/** The length of the array. */

	protected final int length;
	
	/** String representation. */

	private Reference<String> _string;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/09/15
	 */

	public SpringArrayObject(SpringClass __self, SpringClass __cl, int __l)
		throws NullPointerException
	{
		if (__self == null || __cl == null)
			throw new NullPointerException("NARG");
		
		// {@squirreljme.error BK01 Attempt to allocate an array of a
................................................................................
	
	/**
	 * Returns the raw backing array.
	 *
	 * @return The array.
	 * @since 2018/11/19
	 */

	public abstract Object array();
	
	/**
	 * Sets the index to the specified value.
	 *
	 * @param <C> The type of value to get.
	 * @param __cl The type of value to get.
................................................................................
	 * @throws NullPointerException On null arguments.
	 * @throws SpringArrayStoreException If the array cannot store the given
	 * type.
	 * @throws SpringArrayIndexOutOfBoundsException If the index is not within
	 * bounds.
	 * @since 2018/09/16
	 */

	public abstract <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException;
	
	/**
	 * Sets the index to the specified value.
	 *
	 * @param __dx The index to set.
................................................................................
	 * @param __v The value to set.
	 * @throws SpringArrayStoreException If the array cannot store the given
	 * type.
	 * @throws SpringArrayIndexOutOfBoundsException If the index is not within
	 * bounds.
	 * @since 2018/09/16
	 */

	public abstract void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException;
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override

	public final SpringMonitor monitor()
	{
		return this.monitor;
	}
	
	/**
	 * Returns the length of this array.
	 *
	 * @return The array length.
	 * @since 2018/09/16
	 */

	public final int length()
	{
		return this.length;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override

	public final SpringPointerArea pointerArea()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceChainer refChainer()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceCounter refCounter()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override

	public final String toString()
	{
		Reference<String> ref = this._string;
		String rv;
		
		if (ref == null || null == (rv = ref.get()))
			this._string = new WeakReference<>((rv = String.format(
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override

	public final SpringClass type()
	{
		return this.selftype;
	}
}








>




>



>



>



>












>







 







>







 







>







 







>








>











>










>










>










>










>







 







>






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
..
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
..
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
...
192
193
194
195
196
197
198
199
200
201
202
203
204
205
 * @since 2018/09/15
 */
@Deprecated
public abstract class SpringArrayObject
	implements SpringObject
{
	/** The monitor for this array. */
	@Deprecated
	protected final SpringMonitor monitor =
		new SpringMonitor();
	
	/** The type of this object itself. */
	@Deprecated
	protected final SpringClass selftype;
	
	/** The component type. */
	@Deprecated
	protected final SpringClass component;
	
	/** The length of the array. */
	@Deprecated
	protected final int length;
	
	/** String representation. */
	@Deprecated
	private Reference<String> _string;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/09/15
	 */
	@Deprecated
	public SpringArrayObject(SpringClass __self, SpringClass __cl, int __l)
		throws NullPointerException
	{
		if (__self == null || __cl == null)
			throw new NullPointerException("NARG");
		
		// {@squirreljme.error BK01 Attempt to allocate an array of a
................................................................................
	
	/**
	 * Returns the raw backing array.
	 *
	 * @return The array.
	 * @since 2018/11/19
	 */
	@Deprecated
	public abstract Object array();
	
	/**
	 * Sets the index to the specified value.
	 *
	 * @param <C> The type of value to get.
	 * @param __cl The type of value to get.
................................................................................
	 * @throws NullPointerException On null arguments.
	 * @throws SpringArrayStoreException If the array cannot store the given
	 * type.
	 * @throws SpringArrayIndexOutOfBoundsException If the index is not within
	 * bounds.
	 * @since 2018/09/16
	 */
	@Deprecated
	public abstract <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException;
	
	/**
	 * Sets the index to the specified value.
	 *
	 * @param __dx The index to set.
................................................................................
	 * @param __v The value to set.
	 * @throws SpringArrayStoreException If the array cannot store the given
	 * type.
	 * @throws SpringArrayIndexOutOfBoundsException If the index is not within
	 * bounds.
	 * @since 2018/09/16
	 */
	@Deprecated
	public abstract void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException;
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override
	@Deprecated
	public final SpringMonitor monitor()
	{
		return this.monitor;
	}
	
	/**
	 * Returns the length of this array.
	 *
	 * @return The array length.
	 * @since 2018/09/16
	 */
	@Deprecated
	public final int length()
	{
		return this.length;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override
	@Deprecated
	public final SpringPointerArea pointerArea()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceChainer refChainer()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceCounter refCounter()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override
	@Deprecated
	public final String toString()
	{
		Reference<String> ref = this._string;
		String rv;
		
		if (ref == null || null == (rv = ref.get()))
			this._string = new WeakReference<>((rv = String.format(
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override
	@Deprecated
	public final SpringClass type()
	{
		return this.selftype;
	}
}

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObjectBoolean.java.

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
..
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
..
99
100
101
102
103
104
105

106
107
108
109
110
111
112
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectBoolean
	extends SpringArrayObject
{
	/** Elements in the array. */

	private final boolean[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */

	public SpringArrayObjectBoolean(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */

	public SpringArrayObjectBoolean(SpringClass __self, SpringClass __cl,
		boolean[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override

	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Integer.valueOf((this._elements[__dx] ? 1 : 0));
................................................................................
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})

	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] =







>












>







 







>







 







>










>







 







>







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
..
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
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectBoolean
	extends SpringArrayObject
{
	/** Elements in the array. */
	@Deprecated
	private final boolean[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */
	@Deprecated
	public SpringArrayObjectBoolean(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */
	@Deprecated
	public SpringArrayObjectBoolean(SpringClass __self, SpringClass __cl,
		boolean[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override
	@Deprecated
	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Integer.valueOf((this._elements[__dx] ? 1 : 0));
................................................................................
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})
	@Deprecated
	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] =

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObjectByte.java.

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
..
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
..
99
100
101
102
103
104
105

106
107
108
109
110
111
112
 * @since 2018/11/04
 */
@Deprecated
public final class SpringArrayObjectByte
	extends SpringArrayObject
{
	/** Elements in the array. */

	private final byte[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/04
	 */

	public SpringArrayObjectByte(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */

	public SpringArrayObjectByte(SpringClass __self, SpringClass __cl,
		byte[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override

	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})

	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Integer.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Integer)__v).byteValue();







>












>







 







>







 







>











>







 







>







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
..
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
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 * @since 2018/11/04
 */
@Deprecated
public final class SpringArrayObjectByte
	extends SpringArrayObject
{
	/** Elements in the array. */
	@Deprecated
	private final byte[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/04
	 */
	@Deprecated
	public SpringArrayObjectByte(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */
	@Deprecated
	public SpringArrayObjectByte(SpringClass __self, SpringClass __cl,
		byte[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override
	@Deprecated
	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})
	@Deprecated
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Integer.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Integer)__v).byteValue();

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObjectChar.java.

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
..
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
..
99
100
101
102
103
104
105

106
107
108
109
110
111
112
 * @since 2018/11/04
 */
@Deprecated
public final class SpringArrayObjectChar
	extends SpringArrayObject
{
	/** Elements in the array. */

	private final char[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/04
	 */

	public SpringArrayObjectChar(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */

	public SpringArrayObjectChar(SpringClass __self, SpringClass __cl,
		char[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override

	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})

	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Integer.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = (char)((Integer)__v).intValue();







>












>







 







>







 







>











>







 







>







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
..
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
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 * @since 2018/11/04
 */
@Deprecated
public final class SpringArrayObjectChar
	extends SpringArrayObject
{
	/** Elements in the array. */
	@Deprecated
	private final char[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/04
	 */
	@Deprecated
	public SpringArrayObjectChar(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */
	@Deprecated
	public SpringArrayObjectChar(SpringClass __self, SpringClass __cl,
		char[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override
	@Deprecated
	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})
	@Deprecated
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Integer.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = (char)((Integer)__v).intValue();

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObjectDouble.java.

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
..
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
..
99
100
101
102
103
104
105

106
107
108
109
110
111
112
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectDouble
	extends SpringArrayObject
{
	/** Elements in the array. */

	private final double[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */

	public SpringArrayObjectDouble(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */

	public SpringArrayObjectDouble(SpringClass __self, SpringClass __cl,
		double[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override

	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})

	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Double.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Double)__v).doubleValue();







>












>







 







>







 







>











>







 







>







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
..
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
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectDouble
	extends SpringArrayObject
{
	/** Elements in the array. */
	@Deprecated
	private final double[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */
	@Deprecated
	public SpringArrayObjectDouble(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */
	@Deprecated
	public SpringArrayObjectDouble(SpringClass __self, SpringClass __cl,
		double[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override
	@Deprecated
	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})
	@Deprecated
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Double.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Double)__v).doubleValue();

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObjectFloat.java.

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
..
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
..
99
100
101
102
103
104
105

106
107
108
109
110
111
112
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectFloat
	extends SpringArrayObject
{
	/** Elements in the array. */

	private final float[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */

	public SpringArrayObjectFloat(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */

	public SpringArrayObjectFloat(SpringClass __self, SpringClass __cl,
		float[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override

	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})

	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Float.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Float)__v).floatValue();







>












>







 







>







 







>











>







 







>







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
..
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
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectFloat
	extends SpringArrayObject
{
	/** Elements in the array. */
	@Deprecated
	private final float[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */
	@Deprecated
	public SpringArrayObjectFloat(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */
	@Deprecated
	public SpringArrayObjectFloat(SpringClass __self, SpringClass __cl,
		float[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override
	@Deprecated
	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})
	@Deprecated
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Float.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Float)__v).floatValue();

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObjectGeneric.java.

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
..
89
90
91
92
93
94
95

96
97
98
99
100
101
102
103
104
105

106
107
108
109
110
111
112
...
122
123
124
125
126
127
128

129
130
131
132
133
134
135
 * @since 2018/11/04
 */
@Deprecated
public final class SpringArrayObjectGeneric
	extends SpringArrayObject
{
	/** Elements in the array. */

	private final Object[] _elements;
	
	/** The last class which was checked for compatibility. */

	private SpringClass _lastvalid;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/09/15
	 */

	public SpringArrayObjectGeneric(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override

	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Faster to just have the host VM do bounds check
		try
		{
			return __cl.cast(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		try
		{
			// This is a cached type for setting because an array of one type
			// will usually in most cases set with objects which are compatible







>



>












>







 







>










>







 







>







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
..
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
...
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
 * @since 2018/11/04
 */
@Deprecated
public final class SpringArrayObjectGeneric
	extends SpringArrayObject
{
	/** Elements in the array. */
	@Deprecated
	private final Object[] _elements;
	
	/** The last class which was checked for compatibility. */
	@Deprecated
	private SpringClass _lastvalid;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/09/15
	 */
	@Deprecated
	public SpringArrayObjectGeneric(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override
	@Deprecated
	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Faster to just have the host VM do bounds check
		try
		{
			return __cl.cast(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		try
		{
			// This is a cached type for setting because an array of one type
			// will usually in most cases set with objects which are compatible

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObjectInteger.java.

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
..
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
..
99
100
101
102
103
104
105

106
107
108
109
110
111
112
 * @since 2018/11/04
 */
@Deprecated
public final class SpringArrayObjectInteger
	extends SpringArrayObject
{
	/** Elements in the array. */

	private final int[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/04
	 */

	public SpringArrayObjectInteger(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */

	public SpringArrayObjectInteger(SpringClass __self, SpringClass __cl,
		int[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override

	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})

	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Integer.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Integer)__v).intValue();







>












>







 







>







 







>











>







 







>







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
..
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
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 * @since 2018/11/04
 */
@Deprecated
public final class SpringArrayObjectInteger
	extends SpringArrayObject
{
	/** Elements in the array. */
	@Deprecated
	private final int[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/04
	 */
	@Deprecated
	public SpringArrayObjectInteger(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */
	@Deprecated
	public SpringArrayObjectInteger(SpringClass __self, SpringClass __cl,
		int[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override
	@Deprecated
	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})
	@Deprecated
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Integer.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Integer)__v).intValue();

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObjectLong.java.

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
..
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
..
99
100
101
102
103
104
105

106
107
108
109
110
111
112
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectLong
	extends SpringArrayObject
{
	/** Elements in the array. */

	private final long[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */

	public SpringArrayObjectLong(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */

	public SpringArrayObjectLong(SpringClass __self, SpringClass __cl,
		long[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override

	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})

	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Long.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((__v instanceof SpringPointer) ?







>












>







 







>







 







>











>







 







>







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
..
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
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectLong
	extends SpringArrayObject
{
	/** Elements in the array. */
	@Deprecated
	private final long[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */
	@Deprecated
	public SpringArrayObjectLong(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */
	@Deprecated
	public SpringArrayObjectLong(SpringClass __self, SpringClass __cl,
		long[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override
	@Deprecated
	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@SuppressWarnings({"unchecked"})
	@Deprecated
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
			return (C)Long.valueOf(this._elements[__dx]);
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((__v instanceof SpringPointer) ?

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringArrayObjectShort.java.

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
..
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
..
99
100
101
102
103
104
105

106
107
108
109
110
111
112
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectShort
	extends SpringArrayObject
{
	/** Elements in the array. */

	private final short[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */

	public SpringArrayObjectShort(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */

	public SpringArrayObjectShort(SpringClass __self, SpringClass __cl,
		short[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override

	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	@SuppressWarnings({"unchecked"})
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override

	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Integer)__v).shortValue();







>












>







 







>







 







>










>







 







>







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
..
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
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 * @since 2018/11/14
 */
@Deprecated
public final class SpringArrayObjectShort
	extends SpringArrayObject
{
	/** Elements in the array. */
	@Deprecated
	private final short[] _elements;
	
	/**
	 * Initializes the array.
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __l The array length.
	 * @throws NullPointerException On null arguments.
	 * @throws SpringNegativeArraySizeException If the array size is negative.
	 * @since 2018/11/14
	 */
	@Deprecated
	public SpringArrayObjectShort(SpringClass __self, SpringClass __cl,
		int __l)
		throws NullPointerException
	{
		super(__self, __cl, __l);
		
		// Initialize elements
................................................................................
	 *
	 * @param __self The self type.
	 * @param __cl The component type.
	 * @param __a The array to wrap.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/18
	 */
	@Deprecated
	public SpringArrayObjectShort(SpringClass __self, SpringClass __cl,
		short[] __a)
		throws NullPointerException
	{
		super(__self, __cl, __a.length);
		
		this._elements = __a;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/19
	 */
	@Override
	@Deprecated
	public final Object array()
	{
		return this._elements;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	@SuppressWarnings({"unchecked"})
	public final <C> C get(Class<C> __cl, int __dx)
		throws NullPointerException, SpringArrayIndexOutOfBoundsException
	{
		// Read value
		try
		{
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/14
	 */
	@Override
	@Deprecated
	public final void set(int __dx, Object __v)
		throws SpringArrayStoreException, SpringArrayIndexOutOfBoundsException
	{
		// Try setting
		try
		{
			this._elements[__dx] = ((Integer)__v).shortValue();

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringNullObject.java.

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
 * @since 2018/09/08
 */
@Deprecated
public final class SpringNullObject
	implements SpringObject
{
	/** Single null object reference. */

	public static final SpringNullObject NULL =
		new SpringNullObject();
	
	/**
	 * Only used once.
	 *
	 * @since 2018/09/08
	 */

	private SpringNullObject()
	{
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override

	public final SpringMonitor monitor()
	{
		// {@squirreljme.error BK1e Cannot obtain the monitor of an object
		// that is null.}
		throw new SpringNullPointerException("BK1e");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override

	public final SpringPointerArea pointerArea()
	{
		return SpringPointerArea.NULL;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceChainer refChainer()
	{
		throw new SpringVirtualMachineException("Null has no ref chain.");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceCounter refCounter()
	{
		throw new SpringVirtualMachineException("Null has no ref counter.");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/09
	 */
	@Override

	public final SpringClass type()
	{
		return null;
	}
}








>








>









>












>










>










>










>






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
 * @since 2018/09/08
 */
@Deprecated
public final class SpringNullObject
	implements SpringObject
{
	/** Single null object reference. */
	@Deprecated
	public static final SpringNullObject NULL =
		new SpringNullObject();
	
	/**
	 * Only used once.
	 *
	 * @since 2018/09/08
	 */
	@Deprecated
	private SpringNullObject()
	{
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override
	@Deprecated
	public final SpringMonitor monitor()
	{
		// {@squirreljme.error BK1e Cannot obtain the monitor of an object
		// that is null.}
		throw new SpringNullPointerException("BK1e");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override
	@Deprecated
	public final SpringPointerArea pointerArea()
	{
		return SpringPointerArea.NULL;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceChainer refChainer()
	{
		throw new SpringVirtualMachineException("Null has no ref chain.");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceCounter refCounter()
	{
		throw new SpringVirtualMachineException("Null has no ref counter.");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/09
	 */
	@Override
	@Deprecated
	public final SpringClass type()
	{
		return null;
	}
}

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringObject.java.

13
14
15
16
17
18
19

20
21
22
23
24
25
26
..
30
31
32
33
34
35
36

37
38
39
40
41
42
43
..
56
57
58
59
60
61
62

63
64
65
/**
 * This represents anything that is treated by the virtual machine as a kind
 * of object reference. This is needed for SquirrelJME since it exposes a
 * pointer logic which is magically handled by the virtual machine.
 *
 * @since 2018/09/08
 */

public interface SpringObject
{
	/**
	 * Returns the monitor for this object.
	 *
	 * @return This object's monitor.
	 * @since 2018/09/15
................................................................................
	
	/**
	 * Returns the pointer area for this object.
	 *
	 * @return The pointer area for this object.
	 * @since 2019/12/21
	 */

	SpringPointerArea pointerArea();
	
	/**
	 * Returns the reference chain manager.
	 *
	 * @return The reference chain pointer.
	 * @since 2020/03/13
................................................................................
	
	/**
	 * Returns the object type.
	 *
	 * @return The object type.
	 * @since 2018/09/09
	 */

	SpringClass type();
}








>







 







>







 







>



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
..
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
..
58
59
60
61
62
63
64
65
66
67
68
/**
 * This represents anything that is treated by the virtual machine as a kind
 * of object reference. This is needed for SquirrelJME since it exposes a
 * pointer logic which is magically handled by the virtual machine.
 *
 * @since 2018/09/08
 */
@Deprecated
public interface SpringObject
{
	/**
	 * Returns the monitor for this object.
	 *
	 * @return This object's monitor.
	 * @since 2018/09/15
................................................................................
	
	/**
	 * Returns the pointer area for this object.
	 *
	 * @return The pointer area for this object.
	 * @since 2019/12/21
	 */
	@Deprecated
	SpringPointerArea pointerArea();
	
	/**
	 * Returns the reference chain manager.
	 *
	 * @return The reference chain pointer.
	 * @since 2020/03/13
................................................................................
	
	/**
	 * Returns the object type.
	 *
	 * @return The object type.
	 * @since 2018/09/09
	 */
	@Deprecated
	SpringClass type();
}

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringPointerManager.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
..
76
77
78
79
80
81
82

83
84
85
86
87
88
89
...
109
110
111
112
113
114
115

116
117
118
119
120
121
122
import java.util.Map;

/**
 * This is used to manage pointers within SpringCoat.
 *
 * @since 2019/12/21
 */

public final class SpringPointerManager
{
	/** Queue for cleared references. */

	private final ReferenceQueue<SpringObject> _queue =
		new ReferenceQueue<>();
	
	/** Reference to integer. */

	private final Map<Reference<SpringObject>, Integer> _rtoi =
		new HashMap<>();
	
	/** Integer to reference. */

	private final Map<Integer, Reference<SpringObject>> _itor =
		new HashMap<>();
	
	/** The next allocation address. */

	private int _next =
		4;
	
	/**
	 * Allocates and returns a new pointer area.
	 *
	 * @param __l The length to allocate.
	 * @return The resulting pointer.
	 * @throws IllegalArgumentException If the length is negative.
	 * @since 2019/12/21
	 */

	public final SpringPointerArea allocate(int __l)
		throws IllegalArgumentException
	{
		// {@squirreljme.error BK3g Cannot allocate negative pointer space.}
		if (__l < 0)
			throw new IllegalArgumentException("BK3g");
		
................................................................................
	 * @param __l The length to allocate.
	 * @param __o The object to bind.
	 * @return The resulting pointer.
	 * @throws IllegalArgumentException If the length is negative.
	 * @throws NullPointerException On null arguments.
	 * @since 2019/12/22
	 */

	public final SpringPointerArea allocateAndBind(int __l, SpringObject __o)
		throws IllegalArgumentException, NullPointerException
	{
		if (__o == null)
			throw new NullPointerException("NARG");
		
		// Allocate pointer
................................................................................
	/**
	 * Locates the object at the given address.
	 *
	 * @param __p The object to find.
	 * @return The object which was found.
	 * @since 2019/12/22
	 */

	public final SpringObject findObject(int __p)
	{
		// Zero address always returns null pointers!
		if (__p == 0)
			return SpringNullObject.NULL;
		
		// Need to use both maps







>



>




>




>




>











>







 







>







 







>







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
..
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
...
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import java.util.Map;

/**
 * This is used to manage pointers within SpringCoat.
 *
 * @since 2019/12/21
 */
@Deprecated
public final class SpringPointerManager
{
	/** Queue for cleared references. */
	@Deprecated
	private final ReferenceQueue<SpringObject> _queue =
		new ReferenceQueue<>();
	
	/** Reference to integer. */
	@Deprecated
	private final Map<Reference<SpringObject>, Integer> _rtoi =
		new HashMap<>();
	
	/** Integer to reference. */
	@Deprecated
	private final Map<Integer, Reference<SpringObject>> _itor =
		new HashMap<>();
	
	/** The next allocation address. */
	@Deprecated
	private int _next =
		4;
	
	/**
	 * Allocates and returns a new pointer area.
	 *
	 * @param __l The length to allocate.
	 * @return The resulting pointer.
	 * @throws IllegalArgumentException If the length is negative.
	 * @since 2019/12/21
	 */
	@Deprecated
	public final SpringPointerArea allocate(int __l)
		throws IllegalArgumentException
	{
		// {@squirreljme.error BK3g Cannot allocate negative pointer space.}
		if (__l < 0)
			throw new IllegalArgumentException("BK3g");
		
................................................................................
	 * @param __l The length to allocate.
	 * @param __o The object to bind.
	 * @return The resulting pointer.
	 * @throws IllegalArgumentException If the length is negative.
	 * @throws NullPointerException On null arguments.
	 * @since 2019/12/22
	 */
	@Deprecated
	public final SpringPointerArea allocateAndBind(int __l, SpringObject __o)
		throws IllegalArgumentException, NullPointerException
	{
		if (__o == null)
			throw new NullPointerException("NARG");
		
		// Allocate pointer
................................................................................
	/**
	 * Locates the object at the given address.
	 *
	 * @param __p The object to find.
	 * @return The object which was found.
	 * @since 2019/12/22
	 */
	@Deprecated
	public final SpringObject findObject(int __p)
	{
		// Zero address always returns null pointers!
		if (__p == 0)
			return SpringNullObject.NULL;
		
		// Need to use both maps

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringPrimitiveReference.java.

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
{
	/**
	 * Gets the object from this reference.
	 *
	 * @return The value of the reference.
	 * @since 2018/09/23
	 */

	public abstract SpringObject get();
	
	/**
	 * Sets the reference to the given object.
	 *
	 * @param __o The object to set.
	 * @since 2018/09/23
	 */

	public abstract void set(SpringObject __o);
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/23
	 */
	@Override

	public final SpringMonitor monitor()
	{
		// {@squirreljme.error BK1f Reference types are special and have no
		// monitor.}
		throw new SpringVirtualMachineException("BK1f");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override

	public final SpringPointerArea pointerArea()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceChainer refChainer()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceCounter refCounter()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/23
	 */
	@Override

	public final SpringClass type()
	{
		// {@squirreljme.error BK1g Reference types are special and have no
		// class.}
		throw new SpringVirtualMachineException("BK1g");
	}
}








>








>







>












>










>










>










>








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
{
	/**
	 * Gets the object from this reference.
	 *
	 * @return The value of the reference.
	 * @since 2018/09/23
	 */
	@Deprecated
	public abstract SpringObject get();
	
	/**
	 * Sets the reference to the given object.
	 *
	 * @param __o The object to set.
	 * @since 2018/09/23
	 */
	@Deprecated
	public abstract void set(SpringObject __o);
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/23
	 */
	@Override
	@Deprecated
	public final SpringMonitor monitor()
	{
		// {@squirreljme.error BK1f Reference types are special and have no
		// monitor.}
		throw new SpringVirtualMachineException("BK1f");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override
	@Deprecated
	public final SpringPointerArea pointerArea()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceChainer refChainer()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceCounter refCounter()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/23
	 */
	@Override
	@Deprecated
	public final SpringClass type()
	{
		// {@squirreljme.error BK1g Reference types are special and have no
		// class.}
		throw new SpringVirtualMachineException("BK1g");
	}
}

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringPrimitiveWeakReference.java.

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
 * @since 2018/09/23
 */
@Deprecated
public final class SpringPrimitiveWeakReference
	extends SpringPrimitiveReference
{
	/** The reference used. */

	private Reference<SpringObject> _ref;
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/23
	 */
	@Override

	public final SpringObject get()
	{
		Reference<SpringObject> ref = this._ref;
		if (ref != null)
			return ref.get();
		return null;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/23
	 */
	@Override

	public final void set(SpringObject __o)
	{
		this._ref = new WeakReference<>(__o);
	}
}








>







>













>






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
 * @since 2018/09/23
 */
@Deprecated
public final class SpringPrimitiveWeakReference
	extends SpringPrimitiveReference
{
	/** The reference used. */
	@Deprecated
	private Reference<SpringObject> _ref;
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/23
	 */
	@Override
	@Deprecated
	public final SpringObject get()
	{
		Reference<SpringObject> ref = this._ref;
		if (ref != null)
			return ref.get();
		return null;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/23
	 */
	@Override
	@Deprecated
	public final void set(SpringObject __o)
	{
		this._ref = new WeakReference<>(__o);
	}
}

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringSimpleObject.java.

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
..
81
82
83
84
85
86
87

88
89
90
91
92
93
94
..
97
98
99
100
101
102
103

104
105
106
107
108
109
110
111
112
113

114
115
116
117
118
119
120
121
122
123

124
125
126
127
128
129
130
131
132
133

134
135
136
137
138
139
140
141
142
143

144
145
146
147
148
149
150
151
152
153

154
155
156
157
158
159
160
...
164
165
166
167
168
169
170

171
172
173
174
175
176
 * @since 2018/09/08
 */
@Deprecated
public final class SpringSimpleObject
	implements SpringObject
{
	/** The type of object this is. */

	protected final SpringClass type;
	
	/** The monitor for this object, every object has one. */

	protected final SpringMonitor monitor =
		new SpringMonitor();
	
	/** The pointer for this object. */

	protected final SpringPointerArea pointer;
	
	/** The reference chain for this object. */

	protected final ReferenceChainer refChain =
		new ReferenceChainer();
	
	/** Counter for references. */

	protected final ReferenceCounter refCounter =
		new ReferenceCounter();
	
	/** Field storage in the class. */

	private final SpringFieldStorage[] _fields;
	
	/** String representation. */

	private Reference<String> _string;
	
	/**
	 * Initializes the object.
	 *
	 * @param __cl The class of the object.
	 * @param __spm The manager for pointers.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/09/08
	 */

	public SpringSimpleObject(SpringClass __cl, SpringPointerManager __spm)
		throws NullPointerException
	{
		if (__cl == null || __spm == null)
			throw new NullPointerException("NARG");
		
		this.type = __cl;
................................................................................
	 * Returns the field by the given field.
	 *
	 * @param __f The field to get.
	 * @return The storage for the field.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/19
	 */

	public final SpringFieldStorage fieldByField(SpringField __f)
		throws NullPointerException
	{
		if (__f == null)
			throw new NullPointerException("NARG");
		
		return this.fieldByIndex(__f.index());
................................................................................
	/**
	 * Returns the field by the given index.
	 *
	 * @param __dx The field to get.
	 * @return The storage for the field by the specified index.
	 * @since 2018/09/16
	 */

	public final SpringFieldStorage fieldByIndex(int __dx)
	{
		return this._fields[__dx];
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override

	public final SpringMonitor monitor()
	{
		return this.monitor;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override

	public final SpringPointerArea pointerArea()
	{
		return this.pointer;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceChainer refChainer()
	{
		return this.refChain;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceCounter refCounter()
	{
		return this.refCounter;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override

	public final String toString()
	{
		Reference<String> ref = this._string;
		String rv;
		
		if (ref == null || null == (rv = ref.get()))
			this._string = new WeakReference<>((rv = String.format(
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/09
	 */
	@Override

	public final SpringClass type()
	{
		return this.type;
	}
}








>



>




>



>




>




>



>










>







 







>







 







>










>










>










>










>










>







 







>






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
..
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
...
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
...
179
180
181
182
183
184
185
186
187
188
189
190
191
192
 * @since 2018/09/08
 */
@Deprecated
public final class SpringSimpleObject
	implements SpringObject
{
	/** The type of object this is. */
	@Deprecated
	protected final SpringClass type;
	
	/** The monitor for this object, every object has one. */
	@Deprecated
	protected final SpringMonitor monitor =
		new SpringMonitor();
	
	/** The pointer for this object. */
	@Deprecated
	protected final SpringPointerArea pointer;
	
	/** The reference chain for this object. */
	@Deprecated
	protected final ReferenceChainer refChain =
		new ReferenceChainer();
	
	/** Counter for references. */
	@Deprecated
	protected final ReferenceCounter refCounter =
		new ReferenceCounter();
	
	/** Field storage in the class. */
	@Deprecated
	private final SpringFieldStorage[] _fields;
	
	/** String representation. */
	@Deprecated
	private Reference<String> _string;
	
	/**
	 * Initializes the object.
	 *
	 * @param __cl The class of the object.
	 * @param __spm The manager for pointers.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/09/08
	 */
	@Deprecated
	public SpringSimpleObject(SpringClass __cl, SpringPointerManager __spm)
		throws NullPointerException
	{
		if (__cl == null || __spm == null)
			throw new NullPointerException("NARG");
		
		this.type = __cl;
................................................................................
	 * Returns the field by the given field.
	 *
	 * @param __f The field to get.
	 * @return The storage for the field.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/19
	 */
	@Deprecated
	public final SpringFieldStorage fieldByField(SpringField __f)
		throws NullPointerException
	{
		if (__f == null)
			throw new NullPointerException("NARG");
		
		return this.fieldByIndex(__f.index());
................................................................................
	/**
	 * Returns the field by the given index.
	 *
	 * @param __dx The field to get.
	 * @return The storage for the field by the specified index.
	 * @since 2018/09/16
	 */
	@Deprecated
	public final SpringFieldStorage fieldByIndex(int __dx)
	{
		return this._fields[__dx];
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override
	@Deprecated
	public final SpringMonitor monitor()
	{
		return this.monitor;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override
	@Deprecated
	public final SpringPointerArea pointerArea()
	{
		return this.pointer;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceChainer refChainer()
	{
		return this.refChain;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceCounter refCounter()
	{
		return this.refCounter;
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/15
	 */
	@Override
	@Deprecated
	public final String toString()
	{
		Reference<String> ref = this._string;
		String rv;
		
		if (ref == null || null == (rv = ref.get()))
			this._string = new WeakReference<>((rv = String.format(
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/09/09
	 */
	@Override
	@Deprecated
	public final SpringClass type()
	{
		return this.type;
	}
}

Changes to emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/SpringVMStaticMethod.java.

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
 * @since 2018/11/20
 */
@Deprecated
public final class SpringVMStaticMethod
	implements SpringObject
{
	/** The method to execute. */

	protected final SpringMethod method;
	
	/**
	 * Initializes the static method.
	 *
	 * @param __m The method to execute.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/20
	 */

	public SpringVMStaticMethod(SpringMethod __m)
		throws NullPointerException
	{
		if (__m == null)
			throw new NullPointerException("NARG");
		
		this.method = __m;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/20
	 */
	@Override

	public final SpringMonitor monitor()
	{
		// {@squirreljme.error BK3b StaticMethod does not have a monitor.}
		throw new SpringFatalException("BK3b");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override

	public final SpringPointerArea pointerArea()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceChainer refChainer()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override

	public ReferenceCounter refCounter()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/20
	 */
	@Override

	public final SpringClass type()
	{
		// {@squirreljme.error BK3c StaticMethod does not have a type.}
		throw new SpringFatalException("BK3c");
	}
}








>









>







 







>











>










>










>










>







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
 * @since 2018/11/20
 */
@Deprecated
public final class SpringVMStaticMethod
	implements SpringObject
{
	/** The method to execute. */
	@Deprecated
	protected final SpringMethod method;
	
	/**
	 * Initializes the static method.
	 *
	 * @param __m The method to execute.
	 * @throws NullPointerException On null arguments.
	 * @since 2018/11/20
	 */
	@Deprecated
	public SpringVMStaticMethod(SpringMethod __m)
		throws NullPointerException
	{
		if (__m == null)
			throw new NullPointerException("NARG");
		
		this.method = __m;
................................................................................
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/20
	 */
	@Override
	@Deprecated
	public final SpringMonitor monitor()
	{
		// {@squirreljme.error BK3b StaticMethod does not have a monitor.}
		throw new SpringFatalException("BK3b");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/12/21
	 */
	@Override
	@Deprecated
	public final SpringPointerArea pointerArea()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceChainer refChainer()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/13
	 */
	@Override
	@Deprecated
	public ReferenceCounter refCounter()
	{
		throw new todo.TODO();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2018/11/20
	 */
	@Override
	@Deprecated
	public final SpringClass type()
	{
		// {@squirreljme.error BK3c StaticMethod does not have a type.}
		throw new SpringFatalException("BK3c");
	}
}

Added emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/objects/ObjectViewer.java.

























































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// -*- Mode: Java; indent-tabs-mode: t; tab-width: 4 -*-
// ---------------------------------------------------------------------------
// Multi-Phasic Applications: SquirrelJME
//     Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
// ---------------------------------------------------------------------------
// SquirrelJME is under the GNU General Public License v3+, or later.
// See license.mkd for licensing and copyright information.
// ---------------------------------------------------------------------------

package cc.squirreljme.vm.springcoat.objects;

import cc.squirreljme.vm.springcoat.SpringPointer;

/**
 * This is the base interface for any object or address which has a viewer.
 *
 * @since 2020/03/22
 */
public interface ObjectViewer
{
	/**
	 * Returns the pointer to this object.
	 *
	 * @return The object pointer.
	 * @since 2020/03/22
	 */
	SpringPointer pointer();
}

Added emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/objects/SimpleObjectViewer.java.

































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
// -*- Mode: Java; indent-tabs-mode: t; tab-width: 4 -*-
// ---------------------------------------------------------------------------
// Multi-Phasic Applications: SquirrelJME
//     Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
// ---------------------------------------------------------------------------
// SquirrelJME is under the GNU General Public License v3+, or later.
// See license.mkd for licensing and copyright information.
// ---------------------------------------------------------------------------

package cc.squirreljme.vm.springcoat.objects;

import cc.squirreljme.runtime.cldc.debug.Debugging;
import cc.squirreljme.vm.springcoat.SpringObject;
import cc.squirreljme.vm.springcoat.SpringPointer;

/**
 * This is a viewer for simple objects.
 *
 * @since 2020/03/22
 */
public class SimpleObjectViewer
	implements ObjectViewer
{
	/** The pointer to this object. */
	protected final SpringPointer pointer;
	
	/**
	 * Initializes the simple object viewer.
	 *
	 * @param __pointer The pointer of this object.
	 * @throws NullPointerException On null arguments.
	 * @since 2020/03/22
	 */
	public SimpleObjectViewer(SpringPointer __pointer)
		throws NullPointerException
	{
		if (__pointer == null)
			throw new NullPointerException("NARG");
		
		this.pointer = __pointer;
	}
	
	/**
	 * Returns an older {@link SpringObject} view of this object.
	 *
	 * @return The older object view.
	 * @since 2020/03/22
	 */
	@Deprecated
	public SpringObject asSpringObject()
	{
		throw Debugging.todo();
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2020/03/22
	 */
	@Override
	public SpringPointer pointer()
	{
		throw Debugging.todo();
	}
}

Added emulators/springcoat-vm/src/main/java/cc/squirreljme/vm/springcoat/objects/package-info.java.

































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// -*- Mode: Java; indent-tabs-mode: t; tab-width: 4 -*-
// ---------------------------------------------------------------------------
// Multi-Phasic Applications: SquirrelJME
//     Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
// ---------------------------------------------------------------------------
// SquirrelJME is under the GNU General Public License v3+, or later.
// See license.mkd for licensing and copyright information.
// ---------------------------------------------------------------------------

/**
 * Viewers for objects.
 *
 * @since 2020/03/22
 */

package cc.squirreljme.vm.springcoat.objects;