OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "../../include/fxcrt/fx_basic.h" | 7 #include "../../include/fxcrt/fx_basic.h" |
8 static int _Buffer_itoa(char* buf, int i, FX_DWORD flags) | 8 static int _Buffer_itoa(char* buf, int i, FX_DWORD flags) |
9 { | 9 { |
10 if (i == 0) { | 10 if (i == 0) { |
11 buf[0] = '0'; | 11 buf[0] = '0'; |
12 return 1; | 12 return 1; |
13 } | 13 } |
14 char buf1[32]; | 14 char buf1[32]; |
(...skipping 1148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1163 FX_CHAR* pBuffer = (FX_CHAR*)(this + 1); | 1163 FX_CHAR* pBuffer = (FX_CHAR*)(this + 1); |
1164 FXSYS_memcpy32(pBuffer + m_Size, str.GetPtr(), len); | 1164 FXSYS_memcpy32(pBuffer + m_Size, str.GetPtr(), len); |
1165 m_Size += len; | 1165 m_Size += len; |
1166 } | 1166 } |
1167 void CFX_StringBufBase::Append(int i, FX_DWORD flags) | 1167 void CFX_StringBufBase::Append(int i, FX_DWORD flags) |
1168 { | 1168 { |
1169 char buf[32]; | 1169 char buf[32]; |
1170 int len = _Buffer_itoa(buf, i, flags); | 1170 int len = _Buffer_itoa(buf, i, flags); |
1171 Append(CFX_ByteStringC(buf, len)); | 1171 Append(CFX_ByteStringC(buf, len)); |
1172 } | 1172 } |
1173 void CFX_ByteStringL::Empty(IFX_Allocator* pAllocator) | |
1174 { | |
1175 if (m_Ptr) { | |
1176 FX_Allocator_Free(pAllocator, (FX_LPVOID)m_Ptr); | |
1177 } | |
1178 m_Ptr = NULL, m_Length = 0; | |
1179 } | |
1180 FX_LPSTR CFX_ByteStringL::AllocBuffer(FX_STRSIZE length, IFX_Allocator* pAllocat
or) | |
1181 { | |
1182 Empty(pAllocator); | |
1183 FX_LPSTR str = FX_Allocator_Alloc(pAllocator, FX_CHAR, length + 1); | |
1184 if (!str) { | |
1185 return NULL; | |
1186 } | |
1187 *(FX_LPSTR*)(&m_Ptr) = str; | |
1188 m_Length = length; | |
1189 return str; | |
1190 } | |
1191 void CFX_ByteStringL::Set(FX_BSTR src, IFX_Allocator* pAllocator) | |
1192 { | |
1193 Empty(pAllocator); | |
1194 if (src.GetCStr() != NULL && src.GetLength() > 0) { | |
1195 FX_LPSTR str = FX_Allocator_Alloc(pAllocator, FX_CHAR, src.GetLength() +
1); | |
1196 if (!str) { | |
1197 return; | |
1198 } | |
1199 FXSYS_memcpy32(str, src, src.GetLength()); | |
1200 str[src.GetLength()] = '\0'; | |
1201 *(FX_LPSTR*)(&m_Ptr) = str; | |
1202 m_Length = src.GetLength(); | |
1203 } | |
1204 } | |
OLD | NEW |