diff options
author | Chet Haase <chet@google.com> | 2015-04-22 17:07:21 -0700 |
---|---|---|
committer | Chet Haase <chet@google.com> | 2015-04-22 17:07:21 -0700 |
commit | 5b3edbde20b446ecbfebe5d6ad0dcd735473ac75 (patch) | |
tree | e06000c6bdda394aa3920f1782ffcd6373fabaeb /graphics | |
parent | f14c5350419aa5eac8a81a4cdbca5bda4b449315 (diff) | |
download | frameworks_base-5b3edbde20b446ecbfebe5d6ad0dcd735473ac75.zip frameworks_base-5b3edbde20b446ecbfebe5d6ad0dcd735473ac75.tar.gz frameworks_base-5b3edbde20b446ecbfebe5d6ad0dcd735473ac75.tar.bz2 |
Add annotation to Rect.intersect()
Failing to check the return result from intersect() can cause artifacts
because the developer may assume that the rect has been changed to the intersection.
In particular, when the two rects do not overlap, there is no change made to the
source rect. Instead, the method simply returns false. When developers do not
check that return value, they may use the source rect and get undefined results.
This change adds the @CheckResults annotation that will cause a Lint warning
when developers call this method without checking the return value.
Change-Id: I476367d74e712038c248c2379fb124734298fcc1
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/java/android/graphics/Rect.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/Rect.java b/graphics/java/android/graphics/Rect.java index a9a8f37..f036b19 100644 --- a/graphics/java/android/graphics/Rect.java +++ b/graphics/java/android/graphics/Rect.java @@ -16,6 +16,7 @@ package android.graphics; +import android.annotation.CheckResult; import android.os.Parcel; import android.os.Parcelable; @@ -389,6 +390,7 @@ public final class Rect implements Parcelable { * (and this rectangle is then set to that intersection) else * return false and do not change this rectangle. */ + @CheckResult public boolean intersect(int left, int top, int right, int bottom) { if (this.left < right && left < this.right && this.top < bottom && top < this.bottom) { if (this.left < left) this.left = left; @@ -411,6 +413,7 @@ public final class Rect implements Parcelable { * (and this rectangle is then set to that intersection) else * return false and do not change this rectangle. */ + @CheckResult public boolean intersect(Rect r) { return intersect(r.left, r.top, r.right, r.bottom); } @@ -427,6 +430,7 @@ public final class Rect implements Parcelable { * this rectangle to that intersection. If they do not, return * false and do not change this rectangle. */ + @CheckResult public boolean setIntersect(Rect a, Rect b) { if (a.left < b.right && b.left < a.right && a.top < b.bottom && b.top < a.bottom) { left = Math.max(a.left, b.left); |