Skip to content

Commit bfcd832

Browse files
committed
Revert "[Java.Interop] Prevent premature collection w/ JniInstance* (#768)"
This reverts commit 04c80fc. Oops, wrong branch.
1 parent cb08025 commit bfcd832

File tree

4 files changed

+90
-168
lines changed

4 files changed

+90
-168
lines changed

src/Java.Interop/Java.Interop/JniPeerMembers.JniFields.cs

Lines changed: 9 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#nullable enable
22

3-
using System;
4-
53
namespace Java.Interop {
64

75
partial class JniPeerMembers {
@@ -14,9 +12,7 @@ public bool GetBooleanValue (
1412
JniPeerMembers.AssertSelf (self);
1513

1614
var f = GetFieldInfo (encodedMember);
17-
var r = JniEnvironment.InstanceFields.GetBooleanField (self.PeerReference, f);
18-
GC.KeepAlive (self);
19-
return r;
15+
return JniEnvironment.InstanceFields.GetBooleanField (self.PeerReference, f);
2016
}
2117

2218
public void SetValue (string encodedMember, IJavaPeerable self, bool value)
@@ -25,7 +21,6 @@ public void SetValue (string encodedMember, IJavaPeerable self, bool value)
2521

2622
var f = GetFieldInfo (encodedMember);
2723
JniEnvironment.InstanceFields.SetBooleanField (self.PeerReference, f, value);
28-
GC.KeepAlive (self);
2924
}
3025

3126
public sbyte GetSByteValue (
@@ -35,9 +30,7 @@ public sbyte GetSByteValue (
3530
JniPeerMembers.AssertSelf (self);
3631

3732
var f = GetFieldInfo (encodedMember);
38-
var r = JniEnvironment.InstanceFields.GetByteField (self.PeerReference, f);
39-
GC.KeepAlive (self);
40-
return r;
33+
return JniEnvironment.InstanceFields.GetByteField (self.PeerReference, f);
4134
}
4235

4336
public void SetValue (string encodedMember, IJavaPeerable self, sbyte value)
@@ -46,7 +39,6 @@ public void SetValue (string encodedMember, IJavaPeerable self, sbyte value)
4639

4740
var f = GetFieldInfo (encodedMember);
4841
JniEnvironment.InstanceFields.SetByteField (self.PeerReference, f, value);
49-
GC.KeepAlive (self);
5042
}
5143

5244
public char GetCharValue (
@@ -56,9 +48,7 @@ public char GetCharValue (
5648
JniPeerMembers.AssertSelf (self);
5749

5850
var f = GetFieldInfo (encodedMember);
59-
var r = JniEnvironment.InstanceFields.GetCharField (self.PeerReference, f);
60-
GC.KeepAlive (self);
61-
return r;
51+
return JniEnvironment.InstanceFields.GetCharField (self.PeerReference, f);
6252
}
6353

6454
public void SetValue (string encodedMember, IJavaPeerable self, char value)
@@ -67,7 +57,6 @@ public void SetValue (string encodedMember, IJavaPeerable self, char value)
6757

6858
var f = GetFieldInfo (encodedMember);
6959
JniEnvironment.InstanceFields.SetCharField (self.PeerReference, f, value);
70-
GC.KeepAlive (self);
7160
}
7261

7362
public short GetInt16Value (
@@ -77,9 +66,7 @@ public short GetInt16Value (
7766
JniPeerMembers.AssertSelf (self);
7867

7968
var f = GetFieldInfo (encodedMember);
80-
var r = JniEnvironment.InstanceFields.GetShortField (self.PeerReference, f);
81-
GC.KeepAlive (self);
82-
return r;
69+
return JniEnvironment.InstanceFields.GetShortField (self.PeerReference, f);
8370
}
8471

8572
public void SetValue (string encodedMember, IJavaPeerable self, short value)
@@ -88,7 +75,6 @@ public void SetValue (string encodedMember, IJavaPeerable self, short value)
8875

8976
var f = GetFieldInfo (encodedMember);
9077
JniEnvironment.InstanceFields.SetShortField (self.PeerReference, f, value);
91-
GC.KeepAlive (self);
9278
}
9379

9480
public int GetInt32Value (
@@ -98,9 +84,7 @@ public int GetInt32Value (
9884
JniPeerMembers.AssertSelf (self);
9985

10086
var f = GetFieldInfo (encodedMember);
101-
var r = JniEnvironment.InstanceFields.GetIntField (self.PeerReference, f);
102-
GC.KeepAlive (self);
103-
return r;
87+
return JniEnvironment.InstanceFields.GetIntField (self.PeerReference, f);
10488
}
10589

10690
public void SetValue (string encodedMember, IJavaPeerable self, int value)
@@ -109,7 +93,6 @@ public void SetValue (string encodedMember, IJavaPeerable self, int value)
10993

11094
var f = GetFieldInfo (encodedMember);
11195
JniEnvironment.InstanceFields.SetIntField (self.PeerReference, f, value);
112-
GC.KeepAlive (self);
11396
}
11497

11598
public long GetInt64Value (
@@ -119,9 +102,7 @@ public long GetInt64Value (
119102
JniPeerMembers.AssertSelf (self);
120103

121104
var f = GetFieldInfo (encodedMember);
122-
var r = JniEnvironment.InstanceFields.GetLongField (self.PeerReference, f);
123-
GC.KeepAlive (self);
124-
return r;
105+
return JniEnvironment.InstanceFields.GetLongField (self.PeerReference, f);
125106
}
126107

127108
public void SetValue (string encodedMember, IJavaPeerable self, long value)
@@ -130,7 +111,6 @@ public void SetValue (string encodedMember, IJavaPeerable self, long value)
130111

131112
var f = GetFieldInfo (encodedMember);
132113
JniEnvironment.InstanceFields.SetLongField (self.PeerReference, f, value);
133-
GC.KeepAlive (self);
134114
}
135115

136116
public float GetSingleValue (
@@ -140,9 +120,7 @@ public float GetSingleValue (
140120
JniPeerMembers.AssertSelf (self);
141121

142122
var f = GetFieldInfo (encodedMember);
143-
var r = JniEnvironment.InstanceFields.GetFloatField (self.PeerReference, f);
144-
GC.KeepAlive (self);
145-
return r;
123+
return JniEnvironment.InstanceFields.GetFloatField (self.PeerReference, f);
146124
}
147125

148126
public void SetValue (string encodedMember, IJavaPeerable self, float value)
@@ -151,7 +129,6 @@ public void SetValue (string encodedMember, IJavaPeerable self, float value)
151129

152130
var f = GetFieldInfo (encodedMember);
153131
JniEnvironment.InstanceFields.SetFloatField (self.PeerReference, f, value);
154-
GC.KeepAlive (self);
155132
}
156133

157134
public double GetDoubleValue (
@@ -161,9 +138,7 @@ public double GetDoubleValue (
161138
JniPeerMembers.AssertSelf (self);
162139

163140
var f = GetFieldInfo (encodedMember);
164-
var r = JniEnvironment.InstanceFields.GetDoubleField (self.PeerReference, f);
165-
GC.KeepAlive (self);
166-
return r;
141+
return JniEnvironment.InstanceFields.GetDoubleField (self.PeerReference, f);
167142
}
168143

169144
public void SetValue (string encodedMember, IJavaPeerable self, double value)
@@ -172,7 +147,6 @@ public void SetValue (string encodedMember, IJavaPeerable self, double value)
172147

173148
var f = GetFieldInfo (encodedMember);
174149
JniEnvironment.InstanceFields.SetDoubleField (self.PeerReference, f, value);
175-
GC.KeepAlive (self);
176150
}
177151

178152
public JniObjectReference GetObjectValue (
@@ -182,9 +156,7 @@ public JniObjectReference GetObjectValue (
182156
JniPeerMembers.AssertSelf (self);
183157

184158
var f = GetFieldInfo (encodedMember);
185-
var r = JniEnvironment.InstanceFields.GetObjectField (self.PeerReference, f);
186-
GC.KeepAlive (self);
187-
return r;
159+
return JniEnvironment.InstanceFields.GetObjectField (self.PeerReference, f);
188160
}
189161

190162
public void SetValue (string encodedMember, IJavaPeerable self, JniObjectReference value)
@@ -193,7 +165,6 @@ public void SetValue (string encodedMember, IJavaPeerable self, JniObjectReferen
193165

194166
var f = GetFieldInfo (encodedMember);
195167
JniEnvironment.InstanceFields.SetObjectField (self.PeerReference, f, value);
196-
GC.KeepAlive (self);
197168
}
198169
}
199170

src/Java.Interop/Java.Interop/JniPeerMembers.JniFields.tt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
#>
2020
#nullable enable
2121

22-
using System;
23-
2422
namespace Java.Interop {
2523

2624
partial class JniPeerMembers {
@@ -36,9 +34,7 @@ namespace Java.Interop {
3634
JniPeerMembers.AssertSelf (self);
3735

3836
var f = GetFieldInfo (encodedMember);
39-
var r = JniEnvironment.InstanceFields.Get<#= info.JniCallType #>Field (self.PeerReference, f);
40-
GC.KeepAlive (self);
41-
return r;
37+
return JniEnvironment.InstanceFields.Get<#= info.JniCallType #>Field (self.PeerReference, f);
4238
}
4339

4440
public void SetValue (string encodedMember, IJavaPeerable self, <#= info.ParameterType #> value)
@@ -47,7 +43,6 @@ namespace Java.Interop {
4743

4844
var f = GetFieldInfo (encodedMember);
4945
JniEnvironment.InstanceFields.Set<#= info.JniCallType #>Field (self.PeerReference, f, value);
50-
GC.KeepAlive (self);
5146
}
5247
<#
5348
}

0 commit comments

Comments
 (0)