[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.22-985-g3c00f00
oliver at apple.com
oliver at apple.com
Wed Mar 17 18:03:26 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 2fbdb8cc3bc725123699082d6d1cfd4a25a3885b
Author: oliver at apple.com <oliver at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Feb 26 22:17:45 2010 +0000
2010-02-26 Oliver Hunt <oliver at apple.com>
Reviewed by Geoff Garen.
Make the lookup table generator include an explicit cast to expected
type of the function. We do this because otherwise the blind intptr_t
cast that is subsequently applied allows incorrectly typed functions
to be inserted into the table, where they will only fail at runtime.
This change makes such errors produce a compile time failure.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55311 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index e4532ef..2691752 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-02-26 Oliver Hunt <oliver at apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Make the lookup table generator include an explicit cast to expected
+ type of the function. We do this because otherwise the blind intptr_t
+ cast that is subsequently applied allows incorrectly typed functions
+ to be inserted into the table, where they will only fail at runtime.
+ This change makes such errors produce a compile time failure.
+
+ * create_hash_table:
+
2010-02-26 Janne Koskinen <janne.p.koskinen at digia.com>
Reviewed by Simon Hausmann.
diff --git a/JavaScriptCore/create_hash_table b/JavaScriptCore/create_hash_table
index 4184500..77463fb 100755
--- a/JavaScriptCore/create_hash_table
+++ b/JavaScriptCore/create_hash_table
@@ -252,18 +252,21 @@ sub output() {
foreach my $key (@keys) {
my $firstValue = "";
my $secondValue = "";
+ my $castStr = "";
if ($values[$i]{"type"} eq "Function") {
+ $castStr = "static_cast<NativeFunction>";
$firstValue = $values[$i]{"function"};
$secondValue = $values[$i]{"params"};
} elsif ($values[$i]{"type"} eq "Property") {
+ $castStr = "static_cast<PropertySlot::GetValueFunc>";
$firstValue = $values[$i]{"get"};
$secondValue = $values[$i]{"put"};
} elsif ($values[$i]{"type"} eq "Lexer") {
$firstValue = $values[$i]{"value"};
$secondValue = "0";
}
- print " { \"$key\", $attrs[$i], (intptr_t)$firstValue, (intptr_t)$secondValue },\n";
+ print " { \"$key\", $attrs[$i], (intptr_t)" . $castStr . "($firstValue), (intptr_t)$secondValue },\n";
$i++;
}
print " { 0, 0, 0, 0 }\n";
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 81b7869..137a0e6 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2010-02-26 Oliver Hunt <oliver at apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Make the lookup table generator include an explicit cast to expected
+ type of the function. We do this because otherwise the blind intptr_t
+ cast that is subsequently applied allows incorrectly typed functions
+ to be inserted into the table, where they will only fail at runtime.
+ This change makes such errors produce a compile time failure.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/scripts/CodeGeneratorJS.pm:
+
2010-02-26 Alex Milowski <alex at milowski.com>
Reviewed by Kenneth Rohde Christiansen.
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index 7424309..1101930 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -17992,7 +17992,7 @@
853CA9DD0AEEC5E9002372DC /* RenderSVGInlineText.h in Headers */,
A8F5C0B80F9285AC0098E06B /* RenderSVGModelObject.h in Headers */,
083192AA112B43050083C3B9 /* RenderSVGResource.h in Headers */,
- 84BDA16C11358D2A00DBF64C /* RenderSVGResourceClipper.h in Headers */,
+ 84BDA16C11358D2A00DBF64C /* RenderSVGResourceClipper.h in Headers */,
083192AC112B43050083C3B9 /* RenderSVGResourceMasker.h in Headers */,
AA31B5B50C1DFD1000AE7083 /* RenderSVGRoot.h in Headers */,
08DAB9BB1103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.h in Headers */,
@@ -20242,7 +20242,7 @@
853CA9DA0AEEC5E9002372DC /* RenderSVGInline.cpp in Sources */,
853CA9DC0AEEC5E9002372DC /* RenderSVGInlineText.cpp in Sources */,
A8F5C0B90F9285AC0098E06B /* RenderSVGModelObject.cpp in Sources */,
- 84BDA16B11358D2A00DBF64C /* RenderSVGResourceClipper.cpp in Sources */,
+ 84BDA16B11358D2A00DBF64C /* RenderSVGResourceClipper.cpp in Sources */,
083192AB112B43050083C3B9 /* RenderSVGResourceMasker.cpp in Sources */,
AA31B5B40C1DFD1000AE7083 /* RenderSVGRoot.cpp in Sources */,
08DAB9BA1103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.cpp in Sources */,
diff --git a/WebCore/bindings/scripts/CodeGeneratorJS.pm b/WebCore/bindings/scripts/CodeGeneratorJS.pm
index ece6df2..85a84b2 100644
--- a/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -2126,6 +2126,7 @@ tableSizeLoop:
$i = 0;
foreach my $key (@{$keys}) {
my $conditional;
+ my $targetType;
if ($conditionals) {
$conditional = $conditionals->{$key};
@@ -2134,7 +2135,13 @@ tableSizeLoop:
my $conditionalString = "ENABLE(" . join(") && ENABLE(", split(/&/, $conditional)) . ")";
push(@implContent, "#if ${conditionalString}\n");
}
- push(@implContent, " { \"$key\", @$specials[$i], (intptr_t)@$value1[$i], (intptr_t)@$value2[$i] },\n");
+
+ if ("@$specials[$i]" =~ m/Function/) {
+ $targetType = "static_cast<NativeFunction>";
+ } else {
+ $targetType = "static_cast<PropertySlot::GetValueFunc>";
+ }
+ push(@implContent, " { \"$key\", @$specials[$i], (intptr_t)" . $targetType . "(@$value1[$i]), (intptr_t)@$value2[$i] },\n");
if ($conditional) {
push(@implContent, "#endif\n");
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list