| 347 | } |
| 348 | |
| 349 | void* |
| 350 | OD_getPtr(const OD_entry_t* entry, uint8_t subIndex, OD_size_t len, ODR_t* err) { |
| 351 | ODR_t errCopy; |
| 352 | OD_IO_t io; |
| 353 | OD_stream_t* stream = &io.stream; |
| 354 | |
| 355 | errCopy = OD_getSub(entry, subIndex, &io, true); |
| 356 | |
| 357 | if (errCopy == ODR_OK) { |
| 358 | if ((stream->dataOrig == NULL) || (stream->dataLength == 0U)) { |
| 359 | errCopy = ODR_DEV_INCOMPAT; |
| 360 | } else if ((len != 0U) && (len != stream->dataLength)) { |
| 361 | errCopy = ODR_TYPE_MISMATCH; |
| 362 | } else { /* MISRA C 2004 14.10 */ |
| 363 | } |
| 364 | } |
| 365 | |
| 366 | if (err != NULL) { |
| 367 | *err = errCopy; |
| 368 | } |
| 369 | |
| 370 | return (errCopy == ODR_OK) ? stream->dataOrig : NULL; |
| 371 | } |
no test coverage detected