summaryrefslogtreecommitdiffstats
path: root/src/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com')
-rw-r--r--src/java/com/sun/gluegen/MethodBinding.java72
1 files changed, 38 insertions, 34 deletions
diff --git a/src/java/com/sun/gluegen/MethodBinding.java b/src/java/com/sun/gluegen/MethodBinding.java
index 5805be1..7b3984e 100644
--- a/src/java/com/sun/gluegen/MethodBinding.java
+++ b/src/java/com/sun/gluegen/MethodBinding.java
@@ -1,21 +1,21 @@
/*
* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
- *
+ *
* - Redistribution of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
- *
+ *
* - Redistribution in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- *
+ *
* Neither the name of Sun Microsystems, Inc. or the names of
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
- *
+ *
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
* INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
@@ -28,20 +28,24 @@
* DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
* SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
- *
+ *
* You acknowledge that this software is not designed or intended for use
* in the design, construction, operation or maintenance of any nuclear
* facility.
- *
+ *
* Sun gratefully acknowledges that this software was originally authored
* and developed by Kenneth Bradley Russell and Christopher John Kline.
*/
package com.sun.gluegen;
-import java.util.*;
+import com.sun.gluegen.cgram.types.FunctionSymbol;
+import com.sun.gluegen.cgram.types.Type;
-import com.sun.gluegen.cgram.types.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
/** Represents the binding of a C function to a Java method. Also used
to represent calls through function pointers contained in
@@ -73,7 +77,7 @@ public class MethodBinding {
* argument, including the java return type and java argument
* types. It's safe to modify this binding after construction.
*/
- public MethodBinding(MethodBinding bindingToCopy) {
+ public MethodBinding(MethodBinding bindingToCopy) {
this.sym = bindingToCopy.sym;
this.renamedMethodName = bindingToCopy.renamedMethodName;
@@ -94,7 +98,7 @@ public class MethodBinding {
this.signatureUsesJavaPrimitiveArrays = bindingToCopy.signatureUsesJavaPrimitiveArrays;
this.thisPointerIndex = bindingToCopy.thisPointerIndex;
}
-
+
/** Constructor for calling a C function. */
public MethodBinding(FunctionSymbol sym) {
this.sym = sym;
@@ -312,7 +316,7 @@ public class MethodBinding {
protected void computeSignatureProperties() {
if (computedSignatureProperties)
return;
-
+
argumentsUseNIO = false;
signatureUsesNIO = false;
signatureCanUseIndirectNIO = false;
@@ -439,7 +443,7 @@ public class MethodBinding {
thisPointerIndex = i;
break;
}
-
+
if (!arg.isJNIEnv()) {
break; // this pointer must be leftmost argument excluding JNIEnvs
}
@@ -461,7 +465,7 @@ public class MethodBinding {
if (obj == this) {
return true;
}
-
+
if (obj == null || ! (obj instanceof MethodBinding)) {
return false;
}
@@ -474,7 +478,7 @@ public class MethodBinding {
other.getContainingCType() != null &&
(!(containingCType.equals(other.getContainingCType())))) {
return false;
- }
+ }
if (javaArgumentTypes.size() != other.javaArgumentTypes.size()) {
return false;
}
@@ -486,13 +490,13 @@ public class MethodBinding {
return false;
}
}
-
+
return true;
}
@Override
public int hashCode() {
- StringBuffer buf = new StringBuffer(200);
+ StringBuilder buf = new StringBuilder(200);
buf.append(getName());
buf.append(sym.getType().getName(true));
buf.append(getJavaReturnType().getName());
@@ -507,8 +511,8 @@ public class MethodBinding {
// there's something wrong with our parsing of the headers.
assert(getNumArguments() == 1);
continue;
- }
-
+ }
+
buf.append(type.getName());
}
return buf.toString().hashCode();
@@ -517,35 +521,35 @@ public class MethodBinding {
/** Returns the signature of this binding. */
@Override
public String toString() {
- StringBuffer buf = new StringBuffer(200);
+ StringBuilder buf = new StringBuilder(200);
buf.append(getJavaReturnType().getName());
- buf.append(" ");
+ buf.append(' ');
buf.append(getName());
- buf.append("(");
+ buf.append('(');
boolean needComma = false;
for (int i = 0; i < getNumArguments(); i++) {
JavaType type = getJavaArgumentType(i);
- if (type.isVoid()) {
+ if (type.isVoid()) {
// Make sure this is the only param to the method; if it isn't,
// there's something wrong with our parsing of the headers.
assert(getNumArguments() == 1);
continue;
- }
+ }
if (type.isJNIEnv() || isArgumentThisPointer(i)) {
// Don't need to expose these at the Java level
continue;
}
-
+
if (needComma) {
buf.append(", ");
}
buf.append(type.getName());
- buf.append(" ");
+ buf.append(' ');
buf.append(getArgumentName(i));
needComma = true;
}
- buf.append(")");
+ buf.append(')');
return buf.toString();
}
@@ -560,9 +564,9 @@ public class MethodBinding {
manually specifying prologue and epilogue code, for example. */
public String getDescriptor(boolean forImplementingMethodCall,
boolean eraseBufferAndArrayTypes) {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
- buf.append("(");
+ buf.append('(');
if (forImplementingMethodCall && hasContainingType()) {
// Always emit outgoing "this" argument
@@ -571,7 +575,7 @@ public class MethodBinding {
for (int i = 0; i < getNumArguments(); i++) {
JavaType type = getJavaArgumentType(i);
- if (type.isVoid()) {
+ if (type.isVoid()) {
// Make sure this is the only param to the method; if it isn't,
// there's something wrong with our parsing of the headers.
if (getNumArguments() != 1) {
@@ -580,7 +584,7 @@ public class MethodBinding {
"multi-argument function \"" + this + "\"");
}
continue;
- }
+ }
if (type.isJNIEnv() || isArgumentThisPointer(i)) {
// Don't need to expose these at the Java level
@@ -592,7 +596,7 @@ public class MethodBinding {
// Add Buffer and array index offset arguments after each associated argument
if (forImplementingMethodCall) {
if (type.isNIOBuffer()) {
- buf.append("I");
+ buf.append('I');
} else if (type.isNIOBufferArray()) {
buf.append("[I");
}
@@ -600,11 +604,11 @@ public class MethodBinding {
// Add offset argument after each primitive array
if (type.isPrimitiveArray()) {
- buf.append("I");
+ buf.append('I');
}
}
- buf.append(")");
+ buf.append(')');
// Emit return type for completeness even though we can't overload
// based solely on return type