|  | // Copyright 2019 PDFium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "testing/test_loader.h" | 
|  |  | 
|  | #include <string.h> | 
|  |  | 
|  | #include "third_party/base/notreached.h" | 
|  |  | 
|  | TestLoader::TestLoader(pdfium::span<const char> span) : m_Span(span) {} | 
|  |  | 
|  | // static | 
|  | int TestLoader::GetBlock(void* param, | 
|  | unsigned long pos, | 
|  | unsigned char* pBuf, | 
|  | unsigned long size) { | 
|  | TestLoader* pLoader = static_cast<TestLoader*>(param); | 
|  | if (pos + size < pos || pos + size > pLoader->m_Span.size()) { | 
|  | NOTREACHED(); | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | memcpy(pBuf, &pLoader->m_Span[pos], size); | 
|  | return 1; | 
|  | } |