1373259f2960b2fa508e524a035818b390f99e574Diego Perez/* 2373259f2960b2fa508e524a035818b390f99e574Diego Perez * Copyright (C) 2016 The Android Open Source Project 3373259f2960b2fa508e524a035818b390f99e574Diego Perez * 4373259f2960b2fa508e524a035818b390f99e574Diego Perez * Licensed under the Apache License, Version 2.0 (the "License"); 5373259f2960b2fa508e524a035818b390f99e574Diego Perez * you may not use this file except in compliance with the License. 6373259f2960b2fa508e524a035818b390f99e574Diego Perez * You may obtain a copy of the License at 7373259f2960b2fa508e524a035818b390f99e574Diego Perez * 8373259f2960b2fa508e524a035818b390f99e574Diego Perez * http://www.apache.org/licenses/LICENSE-2.0 9373259f2960b2fa508e524a035818b390f99e574Diego Perez * 10373259f2960b2fa508e524a035818b390f99e574Diego Perez * Unless required by applicable law or agreed to in writing, software 11373259f2960b2fa508e524a035818b390f99e574Diego Perez * distributed under the License is distributed on an "AS IS" BASIS, 12373259f2960b2fa508e524a035818b390f99e574Diego Perez * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13373259f2960b2fa508e524a035818b390f99e574Diego Perez * See the License for the specific language governing permissions and 14373259f2960b2fa508e524a035818b390f99e574Diego Perez * limitations under the License. 15373259f2960b2fa508e524a035818b390f99e574Diego Perez */ 16373259f2960b2fa508e524a035818b390f99e574Diego Perez 17373259f2960b2fa508e524a035818b390f99e574Diego Perezpackage com.android.layoutlib.bridge.intensive.util; 18373259f2960b2fa508e524a035818b390f99e574Diego Perez 19373259f2960b2fa508e524a035818b390f99e574Diego Perezimport java.lang.ref.WeakReference; 20373259f2960b2fa508e524a035818b390f99e574Diego Perez 21373259f2960b2fa508e524a035818b390f99e574Diego Perezpublic class TestUtils { 22373259f2960b2fa508e524a035818b390f99e574Diego Perez public static void gc() { 23373259f2960b2fa508e524a035818b390f99e574Diego Perez // See RuntimeUtil#gc in jlibs (http://jlibs.in/) 24373259f2960b2fa508e524a035818b390f99e574Diego Perez Object obj = new Object(); 25373259f2960b2fa508e524a035818b390f99e574Diego Perez WeakReference ref = new WeakReference<>(obj); 26373259f2960b2fa508e524a035818b390f99e574Diego Perez //noinspection UnusedAssignment 27373259f2960b2fa508e524a035818b390f99e574Diego Perez obj = null; 28373259f2960b2fa508e524a035818b390f99e574Diego Perez while (ref.get() != null) { 29373259f2960b2fa508e524a035818b390f99e574Diego Perez System.gc(); 30373259f2960b2fa508e524a035818b390f99e574Diego Perez System.runFinalization(); 31373259f2960b2fa508e524a035818b390f99e574Diego Perez } 32373259f2960b2fa508e524a035818b390f99e574Diego Perez 33373259f2960b2fa508e524a035818b390f99e574Diego Perez System.gc(); 34373259f2960b2fa508e524a035818b390f99e574Diego Perez System.runFinalization(); 35373259f2960b2fa508e524a035818b390f99e574Diego Perez } 36373259f2960b2fa508e524a035818b390f99e574Diego Perez} 37