-
Notifications
You must be signed in to change notification settings - Fork 63
Expand file tree
/
Copy pathCallVirtualFromConstructorBase.cs
More file actions
58 lines (45 loc) · 1.93 KB
/
CallVirtualFromConstructorBase.cs
File metadata and controls
58 lines (45 loc) · 1.93 KB
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
using System;
using System.Runtime.CompilerServices;
using Java.Interop;
using Java.Interop.GenericMarshaler;
namespace Java.InteropTests {
[JniTypeSignature (CallVirtualFromConstructorBase.JniTypeName, GenerateJavaPeer=false)]
public class CallVirtualFromConstructorBase : JavaObject {
internal const string JniTypeName = "net/dot/jni/test/CallVirtualFromConstructorBase";
readonly static JniPeerMembers _members = new JniPeerMembers (JniTypeName, typeof (CallVirtualFromConstructorBase));
public override JniPeerMembers JniPeerMembers {
get {return _members;}
}
public unsafe CallVirtualFromConstructorBase (int value)
: this (value, useNewObject: false)
{
}
public unsafe CallVirtualFromConstructorBase (int value, bool useNewObject)
: this (ref *InvalidJniObjectReference, JniObjectReferenceOptions.None)
{
if (PeerReference.IsValid)
return;
const string __id = "(I)V";
if (useNewObject) {
var ctors = JniPeerMembers.InstanceMethods.GetConstructorsForType (GetType ());
var init = ctors.GetConstructor (__id);
JniArgumentValue* __args = stackalloc JniArgumentValue [1];
__args [0] = new JniArgumentValue (value);
var lref = JniEnvironment.Object.NewObject (ctors.JniPeerType.PeerReference, init, __args);
Construct (ref lref, JniObjectReferenceOptions.CopyAndDispose);
return;
}
var peer = JniPeerMembers.InstanceMethods.StartGenericCreateInstance (__id, GetType (), value);
Construct (ref peer, JniObjectReferenceOptions.CopyAndDispose);
JniPeerMembers.InstanceMethods.FinishGenericCreateInstance (__id, this, value);
}
public CallVirtualFromConstructorBase (ref JniObjectReference reference, JniObjectReferenceOptions options)
: base (ref reference, options)
{
}
public virtual void CalledFromConstructor (int value)
{
_members.InstanceMethods.InvokeGenericVirtualVoidMethod ("calledFromConstructor.(I)V", this, value);
}
}
}