Commit graph

366 commits

Author SHA1 Message Date
Nick Kralevich
50659902d2 am 4f0a7cb8: am 786e5e26: Merge "libutils: cleanups for -fsanitize=integer"
* commit '4f0a7cb8e15ce50f7da6a71c96335bd0b7394492':
  libutils: cleanups for -fsanitize=integer
2015-08-24 16:02:36 +00:00
Nick Kralevich
1f28698998 libutils: cleanups for -fsanitize=integer
* Hashing functions rely on integer overflow behavior.
Mark those functions as safe.

* abort() if a passed in size_t value is greater than
UINT32_MAX. This can occur on 64 bit builds where size_t
is larger than uint32_t.

* Special case the index lookup for an empty sorted vector.
Without the special case, size() == 0, and size()-1 underflows.

Change-Id: I343a14b589fc8f0d221c1998ae5d6f0b9e2781f8
2015-08-24 15:52:22 +00:00
Elliott Hughes
6cec026e86 am 8c86e4e2: am d0cae5b9: Merge "Remove a HAVE_MS_C_RUNTIME I missed."
* commit '8c86e4e2c075c7a879a9f73b56ab075dde61176a':
  Remove a HAVE_MS_C_RUNTIME I missed.
2015-08-19 01:39:16 +00:00
Elliott Hughes
27507d8ba1 Remove a HAVE_MS_C_RUNTIME I missed.
Change-Id: I063c6c802b8967d812d4f4a0972f00b0a88704af
2015-08-18 18:03:04 -07:00
Elliott Hughes
8528d9cfb4 am 8025096e: am 28595721: Merge "Replace HAVE_MS_C_RUNTIME with _WIN32 in system/core."
* commit '8025096e2e523d6d03a35b19471793f85e03ec1a':
  Replace HAVE_MS_C_RUNTIME with _WIN32 in system/core.
2015-08-17 21:05:52 +00:00
Elliott Hughes
cd4ef7581d Replace HAVE_MS_C_RUNTIME with _WIN32 in system/core.
Change-Id: I202c3185d177c85d02ee5d9f7e5bf3422c1422db
2015-08-17 12:38:58 -07:00
Elliott Hughes
f87bc34412 am 802c6fd0: am ff52e23f: Merge "Stop being silly."
* commit '802c6fd0900863b576b9d2c1b0b482988f14dd33':
  Stop being silly.
2015-08-06 17:36:12 +00:00
Elliott Hughes
5be6b37c5d Stop being silly.
Change-Id: I9c18205457396d625502a83e374c1207a3d90b0b
2015-08-06 08:46:32 -07:00
Elliott Hughes
145afc2cc4 am fb1ecbc5: am e6e71608: Merge "Use __ANDROID__ instead of HAVE_ANDROID_OS."
* commit 'fb1ecbc55e7edeafb138eb2a60ca89ba9a7b1f0f':
  Use __ANDROID__ instead of HAVE_ANDROID_OS.
2015-07-30 16:50:15 +00:00
Elliott Hughes
e6e71608bd Merge "Use __ANDROID__ instead of HAVE_ANDROID_OS." 2015-07-30 16:34:47 +00:00
Elliott Hughes
9b828adfad Use __ANDROID__ instead of HAVE_ANDROID_OS.
Change-Id: I9967f3fd758c2a5b40be5b60ae72be7e2fb75136
2015-07-30 09:33:43 -07:00
Elliott Hughes
c6dbc85845 am 42dbc4b1: am 44443bea: Merge "Use _WIN32 rather than HAVE_WINSOCK."
* commit '42dbc4b1859fe4de16b19e9b74324b345c5fcb9d':
  Use _WIN32 rather than HAVE_WINSOCK.
2015-07-30 15:17:07 +00:00
Elliott Hughes
adbf442a51 Use _WIN32 rather than HAVE_WINSOCK.
Change-Id: I9855b6fe72e2f2f3a8360c0993a67cb988024ee4
2015-07-29 17:45:24 -07:00
Elliott Hughes
92a3d2ba32 am 34c92f46: am fc2f1e61: Merge "Move libutils off AndroidConfig.h."
* commit '34c92f4652651697a7de7fa10c214afed9a6658a':
  Move libutils off AndroidConfig.h.
2015-07-30 00:15:35 +00:00
Elliott Hughes
1f8bc86a7d Move libutils off AndroidConfig.h.
Change-Id: Ia0e4a4f968c640eb44317821d2dc6b195f9f490e
2015-07-29 14:31:54 -07:00
Nick Kralevich
ba2c2a8c70 am cb2d0c5a: am 7015b3be: Merge "TypeHelpers.h: Don\'t underflow unsigned int"
* commit 'cb2d0c5aadd2c8e979d696c0bbdc6783067f1c76':
  TypeHelpers.h: Don't underflow unsigned int
2015-06-15 17:51:29 +00:00
Nick Kralevich
58bf572aa2 TypeHelpers.h: Don't underflow unsigned int
When decrementing "n", eventually n will equal zero. When that
happens, n-- underflows. This causes a crash when code which uses
clang's -fsanitize=unsigned-integer-overflow is run.

Avoid trigging an unsigned integer underflow.

Change-Id: I9705be6580d61a164ef5fb1ec77e98a69d888438
2015-06-13 17:49:24 -07:00
Michael Lentine
6078805023 Adding a build id check to blob cache.
Add a build id field to the header structure in blob cache. Add build
id support with reading and writing the cache. When the cache gets
written it writes the build id at the end of the header. When read it
checks to see if there is a match between the current version and the
version in the cache. If not, it invalidates the cache which would
typically only occur during an ota update.  Also remove blob cache
from the host build.

bug: 18262905

Change-Id: I753b1de1986703a4c1c8691b9d2bb533b2546143
2015-05-18 13:14:32 -07:00
John Reck
52fc3e9aa8 Move LinearAlloc to libhwui
Change-Id: I83a70959ed0dcab2237faaf1dddc02b5eb0363c9
2015-04-23 15:07:54 -07:00
Michael Wright
835d9ca034 am 97147ef2: am a7d47092: am a75b3de2: Merge "Mark time conversion functions as constexpr"
* commit '97147ef2cd09bef1f348375611905864fa0fd068':
  Mark time conversion functions as constexpr
2015-04-21 23:27:12 +00:00
Michael Wright
65e93c3b6f Mark time conversion functions as constexpr
Change-Id: I753c6975a8e1d78978c31175b2e1868eb374c442
2015-04-20 15:06:01 +01:00
Elliott Hughes
3bb04bd804 am 6c7c6d04: am 7c194525: am ea975880: Merge "Only Windows doesn\'t have %zd."
* commit '6c7c6d0420ca837b81927b2f7c08cd9d92533043':
  Only Windows doesn't have %zd.
2015-04-03 20:58:29 +00:00
Elliott Hughes
146c244613 Only Windows doesn't have %zd.
Change-Id: Ie09619df212cf7c8aa18a6d46c3e6b6ca3f478cf
2015-04-03 12:53:36 -07:00
Tim Kilbourn
8892ce6383 Use eventfd instead of pipe in Looper.
Bug: 19933224
Change-Id: I6611e918db960bbb0e74f8308e10bdf79510b899
2015-03-27 09:15:43 -07:00
Dan Albert
ac197dd2af am 1188a4d8: am a596623f: am 6ccfabcf: Merge "O_CLOEXEC is O_NOINHERIT on Windows."
* commit '1188a4d856f6c840a2d39c44e35ba3f3cd86b3a5':
  O_CLOEXEC is O_NOINHERIT on Windows.
2015-03-27 06:55:14 +00:00
Dan Albert
c6b30f376d O_CLOEXEC is O_NOINHERIT on Windows.
Change-Id: I714aa08344fa10684c99651f953834086cc162c7
2015-03-26 23:24:15 -07:00
Dan Albert
a83ba64a23 Revert "Revert "Create libbase.""
This reverts commit a7870d8816.

(cherry picked from commit c007bc3856)
2015-03-16 13:48:07 -07:00
Dan Albert
c007bc3856 Revert "Revert "Create libbase.""
This reverts commit a7870d8816.
2015-03-16 10:08:46 -07:00
Nicolas Geoffray
a6000e81dc am 90a968f0: am dd581695: Merge "Revert "Create libbase.""
* commit '90a968f0e3fb903aad41f6689c337a7e4a8d5c7b':
  Revert "Create libbase."
2015-03-16 11:25:38 +00:00
Nicolas Geoffray
a7870d8816 Revert "Create libbase."
Breaks internal master.

This reverts commit 98ff77204c.

Change-Id: I18dc6021cb43efff8aa88486c2d980dc2b8eedba
2015-03-16 11:07:29 +00:00
Dan Albert
06d60af714 am 517f65da: am a68c8148: Merge "Create libbase."
* commit '517f65daef177d06d7835300a1c23ce3409c0643':
  Create libbase.
2015-03-15 22:33:53 +00:00
Dan Albert
98ff77204c Create libbase.
Move StringPrintf and the string based file I/O from libutils to
libbase.

Change-Id: I0297a6063874b9d92100e0dd5123fddfbda932fe
2015-03-14 16:36:18 -07:00
Jeff Brown
e7d54f80cb Fix issues related to removing Looper callbacks after close.
When a file descriptor is closed before removing it from the
epoll set, it will normally be removed automatically from the
epoll set by the kernel.  However if there exists a duplicate
then the original file descriptor may remain in the set and
continue to receive events until all duplicates have been closed.

Unfortunately due to kernel limitations we need to rebuild the epoll
set from scratch because it may contain an old file handle that we are
now unable to remove since its file descriptor is no longer valid.
No such problem would have occurred if we were using the poll system
call instead, but that approach carries others disadvantages.

Bug: 19715279
Change-Id: If1ab8ebda0825755a416d513e888942a02ee3948
2015-03-12 19:44:49 -07:00
Jeff Brown
7a0310ef67 Fixed subtle bugs related to file descriptor recycling.
Added code to protect against situations that may occur when a
Looper callback has the side-effect of closing the file descriptor that
it is watching before it returns.  This code pattern is very
convenient for implementation but it does expose issues in how
the list of callbacks is maintained.  In particular, we
need to watch out for file descriptors which have been reused.

This change may resolve previously unexplained ANRs associated with
log messages such as: "Error modifying epoll events for fd 44, errno=2"

Bug: 10349083
Change-Id: I20eedf6ffbdeda382653ca0104962505194741b0
2015-03-11 15:00:36 -07:00
Jeff Brown
27e5721860 Rename Looper::isIdling() to isPolling() to resolve confusion.
The loop isn't technically idle at this time, it's just checking
whether any file descriptors have pending events.  However it's
still a good signal as to whether the loop is alive.

Bug: 19532373
Change-Id: I555c473e70ffd8a56e1b10aa60026eb674a16de9
2015-03-11 15:00:36 -07:00
Narayan Kamath
6832a7a4e0 Remove useless refCounting from FileMap.
Nobody ever called acquire() so release() was always
equivalent to delete. Just use delete instead so that
people can use unique_ptr directly (or shared_ptr if
they really want refcounts).

Change-Id: I9e3ad5e0f6a4fcc4e02e5a2ff7ef9514fe234415
2015-02-23 15:49:43 +00:00
Elliott Hughes
f682b4786a Clean up reading and writing in init.
This isn't particularly useful in and of itself, but it does introduce the
first (trivial) unit test, improves the documentation (including details
about how to debug init crashes), and made me aware of how unpleasant the
existing parser is.

I also fixed a bug in passing --- unless you thought the "peboot" and "pm"
commands were features...

Bug: 19217569
Change-Id: I6ab76129a543ce3ed3dab52ef2c638009874c3de
2015-02-06 14:20:30 -08:00
Elliott Hughes
d79801d60d Fix Windows build.
Take 2. Probably should have done this in the beginning, but thought I was
being clever.

Change-Id: I85c6e487eece9bcc75f8f62c850c2d4d1ee9e908
2015-02-05 08:21:37 -08:00
Elliott Hughes
202f024dee Add a WriteStringToFile overload that cares about permissions.
Change-Id: I857a80b61768d4e9610bdd149eff2d9d8e48d2c0
2015-02-04 14:30:23 -08:00
Elliott Hughes
e44d25d645 Merge "Add Google-style StringPrintf." 2015-02-03 23:23:11 +00:00
Elliott Hughes
6b3be2902d Add Google-style StringPrintf.
Change-Id: If333c28b8ed047346a2dd85e591c4bedbab874cc
2015-02-03 15:21:07 -08:00
Elliott Hughes
714196d05c Extra Win32 compatibility.
Change-Id: Ibc583aba580f4fc15c243f495ead44b2ce4c6e5e
2015-02-03 14:26:58 -08:00
Elliott Hughes
dec12b2b71 Add Google-style ReadFileToString and WriteStringToFile.
Bug: 19217569
Change-Id: I64789d3fa6777ee30a324cdf00fdc275c1230e1b
2015-02-03 12:18:11 -08:00
Yabin Cui
4a6e5a3b64 Kill HAVE_PTHREADS.
Bug: 19083585
Change-Id: Ic09eb3dd250bc5c5b63cac7998f99f5fa007f407
2015-01-27 14:23:22 -08:00
Chih-Hung Hsieh
ba8cdf99a4 Add required casts for clang/llvm -Wc++11-narrowing
system/core/include/utils/Mutex.h:134:25: error: non-constant-expression
cannot be narrowed from type 'long long' to '__kernel_time_t' (aka
'long') in initializer list [-Wc++11-narrowing]

system/core/include/utils/Mutex.h:135:26: error: non-constant-expression
cannot be narrowed from type 'long long' to 'long' in initializer list
[-Wc++11-narrowing]

Change-Id: Icb9df26aeb01617da5ab1c36987289f7c2b11954
2015-01-12 16:53:52 -08:00
Elliott Hughes
76f0a84f6a Linux always has POSIX clocks available.
pixelflinger doesn't have to run on the Mac, but the Condition
code might.

Change-Id: Ib4e9b4daa6e848ffd5742959427b172d45f08e3c
2015-01-09 16:17:46 -08:00
Jesse Hall
601424a84f Mutex: add timedLock() method
This is not available for host builds because OSX doesn't have
pthread_mutex_timedlock() or equivalent.

Bug: 18842510
Change-Id: I072e74ab1a6f770fd245828b39c5f954dda1113b
2015-01-07 08:06:51 -08:00
Dan Albert
da4f30c5b4 Merge "Remove incompatible Unicode compatibility types." 2014-12-12 02:42:30 +00:00
Chih-Hung Hsieh
c777f213b3 Use full qualified name in macros.
The ANDROID_SINGLETON_STATIC_INSTANCE is used in some files
out of the android namespace. If it does not use full qualified
names, users of this macro will need to use it inside the 'android'
namespace to avoid warnings from clang compiler.

Change-Id: Ie4d4ba2b57fdc72d0deb3b7c2326304a44a1300f
2014-12-11 11:19:57 -08:00
Elliott Hughes
8c275ffcba Fix Mac build.
Change-Id: Iae697ae257cf4b1d675e2b758dd31d5a6a71ae4d
2014-11-22 07:25:02 -08:00