Merge remote-tracking branch

'origin/GP-3286_ghidra1_FunctionEditorParamSize' (Closes #4983)
This commit is contained in:
Ryan Kurtz
2023-04-04 09:09:28 -04:00
2 changed files with 12 additions and 15 deletions
@@ -227,10 +227,10 @@ public class FunctionEditorModel {
returnDataTypeSize + "-bytes)";
return false;
}
else if (storageSize > returnDataTypeSize) {
statusText = "Too much Return Storage (" + storageSize + "-bytes) for datatype (" +
returnDataTypeSize + "-bytes)";
return false;
else if (storageSize > returnDataTypeSize && storageSize <= 8 && returnDataTypeSize <= 8 &&
Undefined.isUndefined(returnInfo.getDataType())) {
// grow undefined type size if needed
returnInfo.setFormalDataType(Undefined.getUndefinedDataType(storageSize));
}
return true;
}
@@ -298,20 +298,20 @@ public class FunctionEditorModel {
return true; // don't constrain float storage size
}
int requiredSize = datatype.getLength();
int paramSize = datatype.getLength();
if (storageSize < requiredSize) {
if (storageSize < paramSize) {
statusText = "Insufficient storage (" + storageSize + "-bytes) for datatype (" +
requiredSize + "-bytes) assigned to parameter " + (param.getOrdinal() + 1);
paramSize + "-bytes) assigned to parameter " + (param.getOrdinal() + 1);
return false;
}
else if (requiredSize == 0) {
else if (paramSize == 0) {
// assume 0-sized structure which we need to allow
}
else if (storageSize > requiredSize) {
statusText = "Too much storage (" + storageSize + "-bytes) for datatype (" +
requiredSize + "-bytes) assigned to parameter " + (param.getOrdinal() + 1);
return false;
else if (storageSize > paramSize && storageSize <= 8 && paramSize <= 8 &&
Undefined.isUndefined(param.getDataType())) {
// grow undefined type size if needed
param.setFormalDataType(Undefined.getUndefinedDataType(storageSize));
}
return true;
}
@@ -201,18 +201,15 @@ class StorageAddressModel {
int currentSize = getCurrentSize();
if (currentSize == 0) {
statusText = "No storage has been allocated";
// return false;
}
else if (currentSize > 0 && unconstrained) {
return true;
}
else if (currentSize < requiredSize) {
statusText = "Warning: Not enough storage space allocated";
// return false;
}
else if (currentSize > requiredSize) {
statusText = "Warning: Too much storage space allocated";
// return false;
}
return true;
}