Skip to content

Commit

Permalink
Remove shared_ptr support until it's working
Browse files Browse the repository at this point in the history
  • Loading branch information
gnodet committed Apr 2, 2019
1 parent d3f9d0a commit 1c4a17b
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 101 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -290,71 +290,38 @@ void generateGetFields(JNIClass clazz) {
JNIFieldAccessor accessor = field.getAccessor();
output("\t");
if (type.isPrimitive()) {
if (field.isSharedPointer()) {
if (!accessor.isNonMemberSetter())
output("lpStruct->");
if (accessor.isMethodSetter()) {
String setterStart = accessor.setter().split("\\(")[0];
output(setterStart + "(");
if (accessor.isNonMemberSetter())
output("lpStruct, ");
} else {
output(accessor.setter());
output(" = ");
output("std::shared_ptr");
output("<");
methodname = field.getCast();
String method = methodname.replace("*", ">");
method = method.replace("(", "");
method = method.replace(")", "");
output(method);
output("(");
output(field.getCast());
}
output(field.getCast());
if (field.isPointer()) {
output("(intptr_t)");
if (isCPP) {
output("env->Get");
} else {
output("(*env)->Get");
}
output(type.getTypeSignature1(!type.equals(type64)));
if (isCPP) {
output("Field(lpObject, ");
} else {
output("Field(env, lpObject, ");
}
output(field.getDeclaringClass().getSimpleName());
output("Fc.");
output(field.getName());
if (accessor.isMethodSetter())
output(")");
output(");");
}
if (isCPP) {
output("env->Get");
} else {
if (!accessor.isNonMemberSetter())
output("lpStruct->");
if (accessor.isMethodSetter()) {
String setterStart = accessor.setter().split("\\(")[0];
output(setterStart + "(");
if (accessor.isNonMemberSetter())
output("lpStruct, ");
} else {
output(accessor.setter());
output(" = ");
}
output(field.getCast());
if (field.isPointer()) {
output("(intptr_t)");
}
if (isCPP) {
output("env->Get");
} else {
output("(*env)->Get");
}
output(type.getTypeSignature1(!type.equals(type64)));
if (isCPP) {
output("Field(lpObject, ");
} else {
output("Field(env, lpObject, ");
}
output(field.getDeclaringClass().getSimpleName());
output("Fc.");
output(field.getName());
if (accessor.isMethodSetter())
output(")");
output(");");
output("(*env)->Get");
}
output(type.getTypeSignature1(!type.equals(type64)));
if (isCPP) {
output("Field(lpObject, ");
} else {
output("Field(env, lpObject, ");
}
output(field.getDeclaringClass().getSimpleName());
output("Fc.");
output(field.getName());
if (accessor.isMethodSetter())
output(")");
output(");");
} else if (type.isArray()) {
JNIType componentType = type.getComponentType(), componentType64 = type64.getComponentType();
if (componentType.isPrimitive()) {
Expand Down Expand Up @@ -509,34 +476,18 @@ void generateSetFields(JNIClass clazz) {
if( field.isPointer() ) {
output("(intptr_t)");
}
if (field.isSharedPointer()) {
output("(&");
if (!accessor.isNonMemberGetter())
output("lpStruct->");
if (accessor.isMethodGetter()) {
String getterStart = accessor.getter().split("\\(")[0];
output(getterStart + "(");
if (accessor.isNonMemberGetter())
output("lpStruct");
output(")");
} else {
output(accessor.getter());
}
output("));");
if (!accessor.isNonMemberGetter())
output("lpStruct->");
if (accessor.isMethodGetter()) {
String getterStart = accessor.getter().split("\\(")[0];
output(getterStart + "(");
if (accessor.isNonMemberGetter())
output("lpStruct");
output(")");
} else {
if (!accessor.isNonMemberGetter())
output("lpStruct->");
if (accessor.isMethodGetter()) {
String getterStart = accessor.getter().split("\\(")[0];
output(getterStart + "(");
if (accessor.isNonMemberGetter())
output("lpStruct");
output(")");
} else {
output(accessor.getter());
}
output(");");
}
output(accessor.getter());
}
output(");");
} else if (type.isArray()) {
JNIType componentType = type.getComponentType(), componentType64 = type64.getComponentType();
if (componentType.isPrimitive()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,5 @@ public interface JNIField {
public String getConditional();
public boolean ignore();

public boolean isSharedPointer();
public boolean isPointer();
}
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,6 @@ public boolean isPointer() {
return getFlag(POINTER_FIELD) || ( type.getWrappedClass() == Long.TYPE && getCast().endsWith("*") );
}

public boolean isSharedPointer() {
if( annotation == null ) {
return false;
}
return getFlag(SHARED_PTR);
}


public String getConditional() {
String parentConditional = getDeclaringClass().getConditional();
String myConditional = annotation == null ? null : emptyFilter(annotation.conditional());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,6 @@ public enum FieldFlag {
*/
POINTER_FIELD,

/**
* Indicate that the field is a shared pointer.
*/

SHARED_PTR,

/**
* Indicate that the getter method used is not part of
* the structure. Useful for using wrappers to access
Expand Down

0 comments on commit 1c4a17b

Please sign in to comment.