1030 }
1031 type = type.superclass;
1032 }
1033 }
1034
1035 // define readXXX and printXXX functions for each VM struct/class Type
1036 tmp = new Object();
1037 tmp.itr = sa.typedb.types;
1038 while (tmp.itr.hasNext()) {
1039 tmp.type = tmp.itr.next();
1040 tmp.name = tmp.type.name;
1041 if (tmp.type.isPointerType() || tmp.type.isOopType() ||
1042 tmp.type.isCIntegerType() || tmp.type.isJavaPrimitiveType() ||
1043 tmp.name.equals('address') ||
1044 tmp.name.equals("<opaque>")) {
1045 // ignore;
1046 continue;
1047 } else {
1048 // some type names have ':'. replace to make it as a
1049 // JavaScript identifier
1050 tmp.name = tmp.name.replace(':', '_');
1051 eval("function read" + tmp.name + "(addr) {" +
1052 " return readVMType('" + tmp.name + "', addr);}");
1053 eval("function print" + tmp.name + "(addr) {" +
1054 " printVMType('" + tmp.name + "', addr); }");
1055
1056 /* FIXME: do we need this?
1057 if (typeof(registerCommand) != 'undefined') {
1058 var name = "print" + tmp.name;
1059 registerCommand(name, name + " [address]", name);
1060 }
1061 */
1062 }
1063 }
1064 //clean-up the temporary
1065 delete tmp;
1066
1067 // VMObject factory
1068
1069 // VM type to SA class map
1070 var vmType2Class = new Object();
|
1030 }
1031 type = type.superclass;
1032 }
1033 }
1034
1035 // define readXXX and printXXX functions for each VM struct/class Type
1036 tmp = new Object();
1037 tmp.itr = sa.typedb.types;
1038 while (tmp.itr.hasNext()) {
1039 tmp.type = tmp.itr.next();
1040 tmp.name = tmp.type.name;
1041 if (tmp.type.isPointerType() || tmp.type.isOopType() ||
1042 tmp.type.isCIntegerType() || tmp.type.isJavaPrimitiveType() ||
1043 tmp.name.equals('address') ||
1044 tmp.name.equals("<opaque>")) {
1045 // ignore;
1046 continue;
1047 } else {
1048 // some type names have ':'. replace to make it as a
1049 // JavaScript identifier
1050 tmp.name = tmp.name.replace(':', '_').replace('<', '_').replace('>', '_').replace('*', '_').replace(' ', '_');
1051 eval("function read" + tmp.name + "(addr) {" +
1052 " return readVMType('" + tmp.name + "', addr);}");
1053 eval("function print" + tmp.name + "(addr) {" +
1054 " printVMType('" + tmp.name + "', addr); }");
1055
1056 /* FIXME: do we need this?
1057 if (typeof(registerCommand) != 'undefined') {
1058 var name = "print" + tmp.name;
1059 registerCommand(name, name + " [address]", name);
1060 }
1061 */
1062 }
1063 }
1064 //clean-up the temporary
1065 delete tmp;
1066
1067 // VMObject factory
1068
1069 // VM type to SA class map
1070 var vmType2Class = new Object();
|