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 "barcode.h"
BC_FX_ByteString_Replace(CFX_ByteString & dst,FX_DWORD first,FX_DWORD last,int32_t count,FX_CHAR c)8 FX_BOOL BC_FX_ByteString_Replace(CFX_ByteString& dst,
9                                  FX_DWORD first,
10                                  FX_DWORD last,
11                                  int32_t count,
12                                  FX_CHAR c) {
13   if (first > last || count <= 0) {
14     return FALSE;
15   }
16   dst.Delete(first, last - first);
17   for (int32_t i = 0; i < count; i++) {
18     dst.Insert(0, c);
19   }
20   return TRUE;
21 }
BC_FX_ByteString_Append(CFX_ByteString & dst,int32_t count,FX_CHAR c)22 void BC_FX_ByteString_Append(CFX_ByteString& dst, int32_t count, FX_CHAR c) {
23   for (int32_t i = 0; i < count; i++) {
24     dst += c;
25   }
26 }
BC_FX_ByteString_Append(CFX_ByteString & dst,const CFX_ByteArray & ba)27 void BC_FX_ByteString_Append(CFX_ByteString& dst, const CFX_ByteArray& ba) {
28   for (int32_t i = 0; i < ba.GetSize(); i++) {
29     dst += ba[i];
30   }
31 }
BC_FX_PtrArray_Sort(CFX_PtrArray & src,BC_PtrArrayCompareCallback fun)32 void BC_FX_PtrArray_Sort(CFX_PtrArray& src, BC_PtrArrayCompareCallback fun) {
33   int32_t nLength = src.GetSize();
34   FX_BOOL changed = true;
35   do {
36     changed = false;
37     for (int32_t i = 0; i < nLength - 1; i++) {
38       if (fun(src[i + 1], src[i])) {
39         void* temp = src[i];
40         src.SetAt(i, src[i + 1]);
41         src.SetAt(i + 1, temp);
42         changed = true;
43       }
44     }
45   } while (changed);
46 }
47