Index: third_party/grpc/tools/codegen/core/gen_legal_metadata_characters.c |
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableValue.cpp b/third_party/grpc/tools/codegen/core/gen_legal_metadata_characters.c |
similarity index 58% |
copy from third_party/WebKit/Source/core/animation/animatable/AnimatableValue.cpp |
copy to third_party/grpc/tools/codegen/core/gen_legal_metadata_characters.c |
index dba8160fdbcb0dd88bae2cd9ea8cf2a103dba336..10605d52bfa7bb07aaae36fa734321505b8a8951 100644 |
--- a/third_party/WebKit/Source/core/animation/animatable/AnimatableValue.cpp |
+++ b/third_party/grpc/tools/codegen/core/gen_legal_metadata_characters.c |
@@ -1,5 +1,7 @@ |
/* |
- * Copyright (C) 2013 Google Inc. All rights reserved. |
+ * |
+ * Copyright 2015-2016, Google Inc. |
+ * All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions are |
@@ -26,33 +28,54 @@ |
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+ * |
*/ |
-#include "core/animation/animatable/AnimatableValue.h" |
+/* generates constant table for metadata.c */ |
-#include "core/animation/animatable/AnimatableNeutral.h" |
-#include "wtf/StdLibExtras.h" |
-#include <algorithm> |
+#include <stdio.h> |
+#include <string.h> |
-namespace blink { |
+static unsigned char legal_bits[256 / 8]; |
-PassRefPtr<AnimatableValue> AnimatableValue::neutralValue() |
-{ |
- DEFINE_STATIC_REF(AnimatableNeutral, neutralSentinelValue, (AnimatableNeutral::create())); |
- return neutralSentinelValue; |
+static void legal(int x) { |
+ int byte = x / 8; |
+ int bit = x % 8; |
+ /* NB: the following integer arithmetic operation needs to be in its |
+ * expanded form due to the "integral promotion" performed (see section |
+ * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type |
+ * is then required to avoid the compiler warning */ |
+ legal_bits[byte] = |
+ (unsigned char)((legal_bits[byte] | (unsigned char)(1 << bit))); |
} |
-PassRefPtr<AnimatableValue> AnimatableValue::interpolate(const AnimatableValue* left, const AnimatableValue* right, double fraction) |
-{ |
- ASSERT(left); |
- ASSERT(right); |
- ASSERT(!left->isNeutral()); |
- ASSERT(!right->isNeutral()); |
+static void dump(void) { |
+ int i; |
- if (fraction && fraction != 1 && left->isSameType(right)) |
- return left->interpolateTo(right, fraction); |
- |
- return defaultInterpolateTo(left, right, fraction); |
+ printf("static const uint8_t legal_header_bits[256/8] = "); |
+ for (i = 0; i < 256 / 8; i++) |
+ printf("%c 0x%02x", i ? ',' : '{', legal_bits[i]); |
+ printf(" };\n"); |
} |
-} // namespace blink |
+static void clear(void) { memset(legal_bits, 0, sizeof(legal_bits)); } |
+ |
+int main(void) { |
+ int i; |
+ |
+ clear(); |
+ for (i = 'a'; i <= 'z'; i++) legal(i); |
+ for (i = '0'; i <= '9'; i++) legal(i); |
+ legal('-'); |
+ legal('_'); |
+ legal('.'); |
+ dump(); |
+ |
+ clear(); |
+ for (i = 32; i <= 126; i++) { |
+ legal(i); |
+ } |
+ dump(); |
+ |
+ return 0; |
+} |