Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1011)

Unified Diff: third_party/bson_c/src/encoding.c

Issue 294683003: Since we're only using it on Linux now, just require poppler as a system dependency. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: set -e Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/bson_c/src/encoding.h ('k') | third_party/bson_c/src/numbers.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/bson_c/src/encoding.c
diff --git a/third_party/bson_c/src/encoding.c b/third_party/bson_c/src/encoding.c
deleted file mode 100644
index 8d2da1502f1323342e207787344ba6a6936cb461..0000000000000000000000000000000000000000
--- a/third_party/bson_c/src/encoding.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright 2009-2011 10gen, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Portions Copyright 2001 Unicode, Inc.
- *
- * Disclaimer
- *
- * This source code is provided as is by Unicode, Inc. No claims are
- * made as to fitness for any particular purpose. No warranties of any
- * kind are expressed or implied. The recipient agrees to determine
- * applicability of information provided. If this file has been
- * purchased on magnetic or optical media from Unicode, Inc., the
- * sole remedy for any claim will be exchange of defective media
- * within 90 days of receipt.
- *
- * Limitations on Rights to Redistribute This Code
- *
- * Unicode, Inc. hereby grants the right to freely use the information
- * supplied in this file in the creation of products supporting the
- * Unicode Standard, and to make copies of this file in any form
- * for internal or external distribution as long as this notice
- * remains attached.
- */
-
-
-#include "bson.h"
-#include "encoding.h"
-
-/*
- * Index into the table below with the first byte of a UTF-8 sequence to
- * get the number of trailing bytes that are supposed to follow it.
- */
-static const char trailingBytesForUTF8[256] = {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
- 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5
-};
-
-/* --------------------------------------------------------------------- */
-
-/*
- * Utility routine to tell whether a sequence of bytes is legal UTF-8.
- * This must be called with the length pre-determined by the first byte.
- * The length can be set by:
- * length = trailingBytesForUTF8[*source]+1;
- * and the sequence is illegal right away if there aren't that many bytes
- * available.
- * If presented with a length > 4, this returns 0. The Unicode
- * definition of UTF-8 goes up to 4-byte sequences.
- */
-static int isLegalUTF8( const unsigned char *source, int length ) {
- unsigned char a;
- const unsigned char *srcptr = source + length;
- switch ( length ) {
- default:
- return 0;
- /* Everything else falls through when "true"... */
- case 4:
- if ( ( a = ( *--srcptr ) ) < 0x80 || a > 0xBF ) return 0;
- case 3:
- if ( ( a = ( *--srcptr ) ) < 0x80 || a > 0xBF ) return 0;
- case 2:
- if ( ( a = ( *--srcptr ) ) > 0xBF ) return 0;
- switch ( *source ) {
- /* no fall-through in this inner switch */
- case 0xE0:
- if ( a < 0xA0 ) return 0;
- break;
- case 0xF0:
- if ( a < 0x90 ) return 0;
- break;
- case 0xF4:
- if ( a > 0x8F ) return 0;
- break;
- default:
- if ( a < 0x80 ) return 0;
- }
- case 1:
- if ( *source >= 0x80 && *source < 0xC2 ) return 0;
- if ( *source > 0xF4 ) return 0;
- }
- return 1;
-}
-
-static int bson_validate_string( bson *b, const unsigned char *string,
- const int length, const char check_utf8, const char check_dot,
- const char check_dollar ) {
-
- int position = 0;
- int sequence_length = 1;
-
- if( check_dollar && string[0] == '$' ) {
- b->err |= BSON_FIELD_INIT_DOLLAR;
- }
-
- while ( position < length ) {
- if ( check_dot && *( string + position ) == '.' ) {
- b->err |= BSON_FIELD_HAS_DOT;
- }
-
- if ( check_utf8 ) {
- sequence_length = trailingBytesForUTF8[*( string + position )] + 1;
- if ( ( position + sequence_length ) > length ) {
- b->err |= BSON_NOT_UTF8;
- return BSON_ERROR;
- }
- if ( !isLegalUTF8( string + position, sequence_length ) ) {
- b->err |= BSON_NOT_UTF8;
- return BSON_ERROR;
- }
- }
- position += sequence_length;
- }
-
- return BSON_OK;
-}
-
-
-int bson_check_string( bson *b, const char *string,
- const int length ) {
-
- return bson_validate_string( b, ( const unsigned char * )string, length, 1, 0, 0 );
-}
-
-int bson_check_field_name( bson *b, const char *string,
- const int length ) {
-
- return bson_validate_string( b, ( const unsigned char * )string, length, 1, 1, 1 );
-}
« no previous file with comments | « third_party/bson_c/src/encoding.h ('k') | third_party/bson_c/src/numbers.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698