View | Details | Raw Unified | Return to issue 67740
Collapse All | Expand All

(-)rtl/source/alloc_cache.c (+11 lines)
Lines 1274-1280 Link Here
1274
			curr = cache->m_cpu_curr;
1282
			curr = cache->m_cpu_curr;
1275
			if ((curr != 0) && (curr->m_mag_used < curr->m_mag_size))
1283
			if ((curr != 0) && (curr->m_mag_used < curr->m_mag_size))
1276
			{
1284
			{
1285
				int i;
1286
				for (i = 0; i < curr->m_mag_used; ++i)
1287
				{
1288
					OSL_ENSURE(curr->m_objects[i] != obj, "DOUBLE FREE!");
1289
					if (curr->m_objects[i] == obj)
1290
					{
1291
						RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
1292
						return;
1293
					}
1294
1295
				}
1277
				curr->m_objects[curr->m_mag_used++] = obj;
1296
				curr->m_objects[curr->m_mag_used++] = obj;
1278
				cache->m_cpu_stats.m_free += 1;
1297
				cache->m_cpu_stats.m_free += 1;
1279
				RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
1298
				RTL_MEMORY_LOCK_RELEASE(&(cache->m_depot_lock));
1280
1299

Return to issue 67740