Merge "Fix problem passing null optional operands." into oc-mr1-dev

am: 072811f5fb

Change-Id: I9d5094edbf5c5d9525a6549cbd3fe3d80716cfca
This commit is contained in:
Jean-Luc Brouillet 2017-10-04 01:44:57 +00:00 committed by android-build-merger
commit 4543395961

View file

@ -990,6 +990,12 @@ enum OperandLifeTime : int32_t {
* The operand is a constant that was specified via a Memory object.
*/
CONSTANT_REFERENCE,
/**
* The operand does not have a value. This is valid only for optional arguments
* of operations.
*/
NO_VALUE,
};
/**
@ -1084,8 +1090,7 @@ struct Operand {
/**
* Quantized zero-point offset of the operand.
*
* Only applicable if the operand is of type TENSOR_QUANT8_ASYMM or
* TENSOR_INT32.
* Only applicable if the operand is of type TENSOR_QUANT8_ASYMM.
*/
int32_t zeroPoint;
@ -1096,7 +1101,7 @@ struct Operand {
/**
* Where to find the data for this operand.
* If the lifetime is TEMPORARY_VARIABLE, MODEL_INPUT, or MODEL_OUTPUT:
* If the lifetime is TEMPORARY_VARIABLE, MODEL_INPUT, MODEL_OUTPUT, or NO_VALUE:
* - All the fields will be 0.
* If the lifetime is CONSTANT_COPY:
* - location.poolIndex is 0.
@ -1189,6 +1194,13 @@ struct Model {
* any updates to the input or output operand.
*/
struct RequestArgument {
/**
* If true, the argument does not have a value. This can be used for operations
* that take optional arguments. If true, the fields of location are set to 0 and
* the dimensions vector is left empty.
*/
bool hasNoValue;
/**
* The location within one of the memory pools passed in the Request.
*/