| 711 | } |
| 712 | |
| 713 | long MemoryDataSource::Seek(long offset, int origin) { |
| 714 | size_t uoffset = (size_t)offset; |
| 715 | switch(origin) { |
| 716 | case SEEK_SET: |
| 717 | if (offset < 0) |
| 718 | return UTE_ERROR; |
| 719 | if (uoffset < m_length) { |
| 720 | m_pointer = uoffset; |
| 721 | return UTE_SUCCESS; |
| 722 | } |
| 723 | break; |
| 724 | case SEEK_CUR: |
| 725 | if (offset < 0 || uoffset > m_length) |
| 726 | return UTE_ERROR; |
| 727 | m_pointer = uoffset; |
| 728 | return UTE_SUCCESS; |
| 729 | break; |
| 730 | case SEEK_END: |
| 731 | if (offset > 0 || (-offset) > (long)m_length) |
| 732 | return UTE_ERROR; |
| 733 | m_pointer = m_length-uoffset; |
| 734 | return UTE_SUCCESS; |
| 735 | break; |
| 736 | } |
| 737 | |
| 738 | return UTE_ERROR; |
| 739 | } |
| 740 | |
| 741 | ////////////////////////// |
| 742 |
nothing calls this directly
no outgoing calls
no test coverage detected