@@ -148,6 +148,9 @@ - (nullable ORTValueTypeInfo*)typeInfoWithError:(NSError**)error {
148148- (nullable ORTTensorTypeAndShapeInfo*)tensorTypeAndShapeInfoWithError : (NSError **)error {
149149 try {
150150 const auto tensorTypeAndShapeInfo = _typeInfo->GetTensorTypeAndShapeInfo ();
151+ if (!tensorTypeAndShapeInfo) {
152+ ORT_CXX_API_THROW (" ORTValue is not a tensor." , ORT_RUNTIME_EXCEPTION);
153+ }
151154 return CXXAPIToPublicTensorTypeAndShapeInfo (tensorTypeAndShapeInfo);
152155 }
153156 ORT_OBJC_API_IMPL_CATCH_RETURNING_NULLABLE (error)
@@ -156,6 +159,9 @@ - (nullable ORTTensorTypeAndShapeInfo*)tensorTypeAndShapeInfoWithError:(NSError*
156159- (nullable NSMutableData *)tensorDataWithError : (NSError **)error {
157160 try {
158161 const auto tensorTypeAndShapeInfo = _typeInfo->GetTensorTypeAndShapeInfo ();
162+ if (!tensorTypeAndShapeInfo) {
163+ ORT_CXX_API_THROW (" ORTValue is not a tensor." , ORT_RUNTIME_EXCEPTION);
164+ }
159165 if (tensorTypeAndShapeInfo.GetElementType () == ONNX_TENSOR_ELEMENT_DATA_TYPE_STRING) {
160166 ORT_CXX_API_THROW (
161167 " This ORTValue holds string data. Please call tensorStringDataWithError: "
@@ -182,6 +188,9 @@ - (nullable NSMutableData*)tensorDataWithError:(NSError**)error {
182188- (nullable NSArray <NSString*>*)tensorStringDataWithError : (NSError **)error {
183189 try {
184190 const auto tensorTypeAndShapeInfo = _typeInfo->GetTensorTypeAndShapeInfo ();
191+ if (!tensorTypeAndShapeInfo) {
192+ ORT_CXX_API_THROW (" ORTValue is not a tensor." , ORT_RUNTIME_EXCEPTION);
193+ }
185194 const size_t elementCount = tensorTypeAndShapeInfo.GetElementCount ();
186195 const size_t tensorStringDataLength = _value->GetStringTensorDataLength ();
187196 std::vector<char > tensorStringData (tensorStringDataLength, ' \0 ' );
0 commit comments