From 06c6855258bf25246c46a1f628b8a8a8185029a7 Mon Sep 17 00:00:00 2001 From: Ryan Harrison Date: Wed, 13 Sep 2017 11:16:32 -0400 Subject: Rewrite IsHyphen using string operations The existing code did end of range checks by making sure that the value was never less then 0. This isn't correct when using an unsigned type, since 0 - 1 will wrap around to the max possible value, and thus still be less then 0. Additionally the existing code was hard to follow due to the complexity of some of the low level operations being performed. It has been rewritten using higher level string operations to make it clearer and correct. BUG=chromium:763256 Change-Id: Ib8bf5ca0e29e73724c4a1c4781362e8a8fc30149 Reviewed-on: https://pdfium-review.googlesource.com/13690 Commit-Queue: Ryan Harrison Reviewed-by: Tom Sepez --- core/fxcrt/cfx_binarybuf.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'core/fxcrt/cfx_binarybuf.h') diff --git a/core/fxcrt/cfx_binarybuf.h b/core/fxcrt/cfx_binarybuf.h index 3081d02902..4c795eda0b 100644 --- a/core/fxcrt/cfx_binarybuf.h +++ b/core/fxcrt/cfx_binarybuf.h @@ -17,10 +17,12 @@ class CFX_BinaryBuf { public: CFX_BinaryBuf(); explicit CFX_BinaryBuf(FX_STRSIZE size); - ~CFX_BinaryBuf(); + virtual ~CFX_BinaryBuf(); uint8_t* GetBuffer() const { return m_pBuffer.get(); } FX_STRSIZE GetSize() const { return m_DataSize; } + virtual FX_STRSIZE GetLength() const; + bool IsEmpty() const { return GetLength() == 0; } void Clear(); void EstimateSize(FX_STRSIZE size, FX_STRSIZE alloc_step = 0); -- cgit v1.2.3