author | jurikm |
Sun, 12 Feb 2012 14:04:10 +0000 | |
changeset 8245 | 383896da4129 |
parent 3064 | 6f76bdc54801 |
permissions | -rw-r--r-- |
3064
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
1 |
From bc070084a9928a29289eacb1db13aad36330cc04 Mon Sep 17 00:00:00 2001 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
2 |
From: Thiago Macieira <[email protected]> |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
3 |
Date: Tue, 21 Jul 2009 14:18:35 +0200 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
4 |
Subject: [PATCH 11/17] Fix compilation with Sun CC 5.9: moving elements in a vector requires source not to be const |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
5 |
|
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
6 |
I don't know why the compiler couldn't call src->~T() on a const T *src, |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
7 |
but fact is it couldn't. |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
8 |
|
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
9 |
In any case, since move is copying the source and deleting it, formally |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
10 |
the argument shouldn't be const anyway. |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
11 |
--- |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
12 |
src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h | 12 ++++++------ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
13 |
1 files changed, 6 insertions(+), 6 deletions(-) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
14 |
|
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
15 |
diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h b/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
16 |
index e303444..d950866 100644 |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
17 |
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
18 |
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
19 |
@@ -129,7 +129,7 @@ namespace WTF { |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
20 |
template<typename T> |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
21 |
struct VectorMover<false, T> |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
22 |
{ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
23 |
- static void move(const T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
24 |
+ static void move(T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
25 |
{ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
26 |
while (src != srcEnd) { |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
27 |
new (dst) T(*src); |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
28 |
@@ -138,7 +138,7 @@ namespace WTF { |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
29 |
++src; |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
30 |
} |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
31 |
} |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
32 |
- static void moveOverlapping(const T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
33 |
+ static void moveOverlapping(T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
34 |
{ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
35 |
if (src > dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
36 |
move(src, srcEnd, dst); |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
37 |
@@ -157,11 +157,11 @@ namespace WTF { |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
38 |
template<typename T> |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
39 |
struct VectorMover<true, T> |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
40 |
{ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
41 |
- static void move(const T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
42 |
+ static void move(T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
43 |
{ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
44 |
memcpy(dst, src, reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src)); |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
45 |
} |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
46 |
- static void moveOverlapping(const T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
47 |
+ static void moveOverlapping(T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
48 |
{ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
49 |
memmove(dst, src, reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src)); |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
50 |
} |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
51 |
@@ -254,12 +254,12 @@ namespace WTF { |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
52 |
VectorInitializer<VectorTraits<T>::needsInitialization, VectorTraits<T>::canInitializeWithMemset, T>::initialize(begin, end); |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
53 |
} |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
54 |
|
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
55 |
- static void move(const T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
56 |
+ static void move(T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
57 |
{ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
58 |
VectorMover<VectorTraits<T>::canMoveWithMemcpy, T>::move(src, srcEnd, dst); |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
59 |
} |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
60 |
|
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
61 |
- static void moveOverlapping(const T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
62 |
+ static void moveOverlapping(T* src, const T* srcEnd, T* dst) |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
63 |
{ |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
64 |
VectorMover<VectorTraits<T>::canMoveWithMemcpy, T>::moveOverlapping(src, srcEnd, dst); |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
65 |
} |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
66 |
-- |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
67 |
1.6.2.1.223.g2f1f |
6f76bdc54801
experimental/SFEqt47: add 40 patches enabling WebKit etc.; create qmake.conf for solaris-cc-stdcxx
viskov
parents:
diff
changeset
|
68 |