mirror of
https://github.com/adelphes/android-dev-ext.git
synced 2025-12-22 17:39:19 +00:00
Improved array handling. Better multidimensional array support.
This commit is contained in:
@@ -537,12 +537,12 @@ function _JDWP() {
|
|||||||
}
|
}
|
||||||
m = signature.match(/^(\[+)(.+)$/);
|
m = signature.match(/^(\[+)(.+)$/);
|
||||||
if (m) {
|
if (m) {
|
||||||
var elementtype = this.signaturetotype(m[2]);
|
var elementtype = this.signaturetotype(m[1].slice(0,-1) + m[2]);
|
||||||
return {
|
return {
|
||||||
signature:signature,
|
signature:signature,
|
||||||
arraydims:m[1].length,
|
arraydims:m[1].length,
|
||||||
elementtype: elementtype,
|
elementtype: elementtype,
|
||||||
typename:elementtype.typename+m[1].replace(/\[/g,'[]'),
|
typename:elementtype.typename+'[]',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var primitivetypes = {
|
var primitivetypes = {
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ class AndroidVariables {
|
|||||||
// get the elements for the specified range
|
// get the elements for the specified range
|
||||||
return this.dbgr.getarrayvalues(varinfo.arrvar, range[0], count, {varinfo})
|
return this.dbgr.getarrayvalues(varinfo.arrvar, range[0], count, {varinfo})
|
||||||
.then((elements, x) => {
|
.then((elements, x) => {
|
||||||
elements.forEach(el => el.fqname = `${x.varinfo.arrvar.name}[${el.name}]`);
|
elements.forEach(el => el.fqname = `${x.varinfo.arrvar.fqname || x.varinfo.arrvar.name}[${el.name}]`);
|
||||||
x.varinfo.cached = elements;
|
x.varinfo.cached = elements;
|
||||||
return this._local_to_variable(elements);
|
return this._local_to_variable(elements);
|
||||||
});
|
});
|
||||||
@@ -191,7 +191,7 @@ class AndroidVariables {
|
|||||||
varref = this._getObjectIdReference(v.type, v.value);
|
varref = this._getObjectIdReference(v.type, v.value);
|
||||||
this.variableHandles[varref] = { varref:varref, arrvar:v, range:[0,v.arraylen] };
|
this.variableHandles[varref] = { varref:varref, arrvar:v, range:[0,v.arraylen] };
|
||||||
}
|
}
|
||||||
objvalue = v.type.typename.replace(/]$/, v.arraylen+']'); // insert len as the final array bound
|
objvalue = v.type.typename.replace(/]/, v.arraylen+']'); // insert len as the first array bound
|
||||||
break;
|
break;
|
||||||
case JTYPES.isObject(v.type):
|
case JTYPES.isObject(v.type):
|
||||||
// non-null object instance - add another variable reference so the user can expand
|
// non-null object instance - add another variable reference so the user can expand
|
||||||
|
|||||||
Reference in New Issue
Block a user