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

Side by Side Diff: tests/lib/mirrors/accessor_cache_overflow_test.dart

Issue 241703002: Prevent unbounded growth of the getField/setField closure caches. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« runtime/lib/mirrors_impl.dart ('K') | « runtime/lib/mirrors_impl.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 library test.hot_get_field;
Ivan Posva 2014/04/25 17:07:08 Please explain the purpose of this test in a comme
rmacnak 2014/04/25 17:46:22 Done.
6
7 import 'dart:mirrors';
8 import 'package:expect/expect.dart';
9
10 const int optimizationThreshold = 20;
11
12 main() {
13 var digits = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'] ;
Ivan Posva 2014/04/25 17:07:08 long line
14 var symbols = new List();
15 for (var high in digits) {
16 for (var low in digits) {
17 symbols.add(MirrorSystem.getSymbol("v$high$low"));
18 }
19 }
20
21 var im = reflect(new C());
22 for (var i = 0; i < optimizationThreshold * 2; i++) {
23 for (var fieldName in symbols) {
24 im.getField(fieldName);
25 im.setField(fieldName, 'foo');
26 }
27 }
28 }
29
30 class C {
31 var v00;
32 var v01;
33 var v02;
34 var v03;
35 var v04;
36 var v05;
37 var v06;
38 var v07;
39 var v08;
40 var v09;
41 var v0A;
42 var v0B;
43 var v0C;
44 var v0D;
45 var v0E;
46 var v0F;
47 var v10;
48 var v11;
49 var v12;
50 var v13;
51 var v14;
52 var v15;
53 var v16;
54 var v17;
55 var v18;
56 var v19;
57 var v1A;
58 var v1B;
59 var v1C;
60 var v1D;
61 var v1E;
62 var v1F;
63 var v20;
64 var v21;
65 var v22;
66 var v23;
67 var v24;
68 var v25;
69 var v26;
70 var v27;
71 var v28;
72 var v29;
73 var v2A;
74 var v2B;
75 var v2C;
76 var v2D;
77 var v2E;
78 var v2F;
79 var v30;
80 var v31;
81 var v32;
82 var v33;
83 var v34;
84 var v35;
85 var v36;
86 var v37;
87 var v38;
88 var v39;
89 var v3A;
90 var v3B;
91 var v3C;
92 var v3D;
93 var v3E;
94 var v3F;
95 var v40;
96 var v41;
97 var v42;
98 var v43;
99 var v44;
100 var v45;
101 var v46;
102 var v47;
103 var v48;
104 var v49;
105 var v4A;
106 var v4B;
107 var v4C;
108 var v4D;
109 var v4E;
110 var v4F;
111 var v50;
112 var v51;
113 var v52;
114 var v53;
115 var v54;
116 var v55;
117 var v56;
118 var v57;
119 var v58;
120 var v59;
121 var v5A;
122 var v5B;
123 var v5C;
124 var v5D;
125 var v5E;
126 var v5F;
127 var v60;
128 var v61;
129 var v62;
130 var v63;
131 var v64;
132 var v65;
133 var v66;
134 var v67;
135 var v68;
136 var v69;
137 var v6A;
138 var v6B;
139 var v6C;
140 var v6D;
141 var v6E;
142 var v6F;
143 var v70;
144 var v71;
145 var v72;
146 var v73;
147 var v74;
148 var v75;
149 var v76;
150 var v77;
151 var v78;
152 var v79;
153 var v7A;
154 var v7B;
155 var v7C;
156 var v7D;
157 var v7E;
158 var v7F;
159 var v80;
160 var v81;
161 var v82;
162 var v83;
163 var v84;
164 var v85;
165 var v86;
166 var v87;
167 var v88;
168 var v89;
169 var v8A;
170 var v8B;
171 var v8C;
172 var v8D;
173 var v8E;
174 var v8F;
175 var v90;
176 var v91;
177 var v92;
178 var v93;
179 var v94;
180 var v95;
181 var v96;
182 var v97;
183 var v98;
184 var v99;
185 var v9A;
186 var v9B;
187 var v9C;
188 var v9D;
189 var v9E;
190 var v9F;
191 var vA0;
192 var vA1;
193 var vA2;
194 var vA3;
195 var vA4;
196 var vA5;
197 var vA6;
198 var vA7;
199 var vA8;
200 var vA9;
201 var vAA;
202 var vAB;
203 var vAC;
204 var vAD;
205 var vAE;
206 var vAF;
207 var vB0;
208 var vB1;
209 var vB2;
210 var vB3;
211 var vB4;
212 var vB5;
213 var vB6;
214 var vB7;
215 var vB8;
216 var vB9;
217 var vBA;
218 var vBB;
219 var vBC;
220 var vBD;
221 var vBE;
222 var vBF;
223 var vC0;
224 var vC1;
225 var vC2;
226 var vC3;
227 var vC4;
228 var vC5;
229 var vC6;
230 var vC7;
231 var vC8;
232 var vC9;
233 var vCA;
234 var vCB;
235 var vCC;
236 var vCD;
237 var vCE;
238 var vCF;
239 var vD0;
240 var vD1;
241 var vD2;
242 var vD3;
243 var vD4;
244 var vD5;
245 var vD6;
246 var vD7;
247 var vD8;
248 var vD9;
249 var vDA;
250 var vDB;
251 var vDC;
252 var vDD;
253 var vDE;
254 var vDF;
255 var vE0;
256 var vE1;
257 var vE2;
258 var vE3;
259 var vE4;
260 var vE5;
261 var vE6;
262 var vE7;
263 var vE8;
264 var vE9;
265 var vEA;
266 var vEB;
267 var vEC;
268 var vED;
269 var vEE;
270 var vEF;
271 var vF0;
272 var vF1;
273 var vF2;
274 var vF3;
275 var vF4;
276 var vF5;
277 var vF6;
278 var vF7;
279 var vF8;
280 var vF9;
281 var vFA;
282 var vFB;
283 var vFC;
284 var vFD;
285 var vFE;
286 var vFF;
287 }
OLDNEW
« runtime/lib/mirrors_impl.dart ('K') | « runtime/lib/mirrors_impl.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698