You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.1 KiB
67 lines
1.1 KiB
9 years ago
|
/*
|
||
6 years ago
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
9 years ago
|
*
|
||
7 years ago
|
* This source code is licensed under the MIT license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
9 years ago
|
*/
|
||
|
|
||
|
package codetoanalyze.java.checkers;
|
||
|
|
||
9 years ago
|
import com.facebook.infer.annotation.IgnoreAllocations;
|
||
6 years ago
|
import com.facebook.infer.annotation.NoAllocation;
|
||
9 years ago
|
|
||
|
public class NoAllocationExample {
|
||
|
|
||
|
@NoAllocation
|
||
|
void directlyAllocatingMethod() {
|
||
|
new Object();
|
||
|
}
|
||
|
|
||
|
void allocates() {
|
||
|
new Object();
|
||
|
}
|
||
|
|
||
|
@NoAllocation
|
||
|
void indirectlyAllocatingMethod() {
|
||
|
allocates();
|
||
|
}
|
||
|
|
||
|
void doesNotAllocate() {
|
||
|
// does noting
|
||
|
}
|
||
|
|
||
|
@NoAllocation
|
||
|
void notAllocatingMethod() {
|
||
|
doesNotAllocate();
|
||
|
}
|
||
|
|
||
|
void allocatingIsFine() {
|
||
|
new Object();
|
||
|
}
|
||
|
|
||
9 years ago
|
@NoAllocation
|
||
|
void throwsException() {
|
||
|
throw new RuntimeException();
|
||
|
}
|
||
|
|
||
|
@NoAllocation
|
||
|
void creatingExceptionIsFine() {
|
||
|
throwsException();
|
||
|
}
|
||
|
|
||
9 years ago
|
@NoAllocation
|
||
|
void thowingAThrowableIsFine() {
|
||
|
throw new AssertionError();
|
||
|
}
|
||
|
|
||
9 years ago
|
@IgnoreAllocations
|
||
|
void acceptableAllocation() {
|
||
|
new Object();
|
||
|
}
|
||
|
|
||
|
@NoAllocation
|
||
|
void onlyAllocatesInAcceptableWay() {
|
||
|
acceptableAllocation();
|
||
|
}
|
||
9 years ago
|
}
|