1// Copyright 2014 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#include "../../include/fxcrt/fx_basic.h"
8#include "plex.h"
9CFX_Plex* CFX_Plex::Create(IFX_Allocator* pAllocator, CFX_Plex*& pHead, FX_DWORD nMax, FX_DWORD cbElement)
10{
11    CFX_Plex* p = (CFX_Plex*)FX_Allocator_Alloc(pAllocator, FX_BYTE, sizeof(CFX_Plex) + nMax * cbElement);
12    if (!p) {
13        return NULL;
14    }
15    p->pNext = pHead;
16    pHead = p;
17    return p;
18}
19void CFX_Plex::FreeDataChain(IFX_Allocator* pAllocator)
20{
21    CFX_Plex* p = this;
22    while (p != NULL) {
23        FX_BYTE* bytes = (FX_BYTE*) p;
24        CFX_Plex* pNext = p->pNext;
25        FX_Allocator_Free(pAllocator, bytes);
26        p = pNext;
27    }
28}
29