Commit graph

338 commits

Author SHA1 Message Date
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 Wright
65e93c3b6f Mark time conversion functions as constexpr
Change-Id: I753c6975a8e1d78978c31175b2e1868eb374c442
2015-04-20 15:06:01 +01:00
Elliott Hughes
146c244613 Only Windows doesn't have %zd.
Change-Id: Ie09619df212cf7c8aa18a6d46c3e6b6ca3f478cf
2015-04-03 12:53:36 -07:00
Dan Albert
c6b30f376d O_CLOEXEC is O_NOINHERIT on Windows.
Change-Id: I714aa08344fa10684c99651f953834086cc162c7
2015-03-26 23:24:15 -07:00
Dan Albert
c007bc3856 Revert "Revert "Create libbase.""
This reverts commit a7870d8816.
2015-03-16 10:08:46 -07: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
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
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
Elliott Hughes
97ac0e1bb4 Kill HAVE_BIG_ENDIAN, HAVE_ENDIAN_H, and HAVE_LITTLE_ENDIAN.
Change-Id: I9e25ac9d27e95b04fb8bf7a66c619af0139d8b8f
2014-11-21 23:10:45 -08:00
Dan Albert
c59932f937 Remove incompatible Unicode compatibility types.
As well intentioned as these were, uint16_t and C++11's char16_t are
_not_ actually compatible. They are not implicitly convertible, and
they mangle differently, so they are not even ABI compatible. In our
now wonderous world of C++11, no one should be using these, so just
kill them.

Bug: 18300613
Change-Id: I06d92d7f1d937dd94a620874323d4c50eb6a31bd
2014-11-20 11:54:39 -08:00
Dan Albert
e4c649c9fc Add a pre-C++11 constexpr compatibility macro.
Needed for cases where something should be constexpr if possible, but
not being constexpr is fine if in pre-C++11 code (such as a const
static float member variable).

Bug: 18466763
Change-Id: I635d062575ba2fbc4cbe3a89f730128c404d95e1
2014-11-20 10:47:55 -08:00
Yabin Cui
266092c52d kill HAVE_POSIX_FILEMAP
Bug: 18315579
Change-Id: I0bd5fb946b12cb90e0c9c73a478df41609b8c3e2
2014-11-11 10:31:30 -08:00
Stephen Hines
f02c797256 Merge "Move winsock2.h in front of a potential windows.h include." 2014-11-09 07:24:43 +00:00
Stephen Hines
7e34121e39 Move winsock2.h in front of a potential windows.h include.
Files that included FileMap.h (possibly transitively), before including
ByteOrder.h (which pulls in winsock2.h directly), will experience a
compiler warning/error from the latest mingw headers. This happens because
the headers require that winsock2.h come before windows.h in all cases.
The simplest (and most error-proof) fix for now is to include winsock2.h
before this use of windows.h.

Change-Id: I33069e4c9962d9820d0ea5976554f89d7ff6307c
2014-11-08 19:30:05 -08:00
Dan Albert
2f5ad5ff86 Make Unicode.h use types that match libc++.
libc++ also defines these types for pre-C++11, and the two definitions
need to match to avoid redefinition errors.

Bug: 18300613
Change-Id: I1e9198d39f7c470f37bc6edba2dca2d499f54c9b
2014-11-08 20:22:30 +00:00
Elliott Hughes
830b77bc5c am fbb4188c: am d559d6c7: Merge "defined(HAVE_OFF_T) is really just !defined(__APPLE__)."
* commit 'fbb4188cfac18b457801cf3e304bfa39dd29dde8':
  defined(HAVE_OFF_T) is really just !defined(__APPLE__).
2014-09-23 16:05:18 +00:00
Elliott Hughes
cb3d65323d defined(HAVE_OFF_T) is really just !defined(__APPLE__).
Change-Id: I83c271bfe24b777acf293d2b4ac5af2cce8398b9
2014-09-22 20:50:54 -07:00
Elliott Hughes
10cce72c4b am 3859029a: am 7fb0ee0c: Merge "Remove androidGetTid."
* commit '3859029a48aa78150fa61eb4988214f8632b33ce':
  Remove androidGetTid.
2014-08-18 19:34:23 +00:00
Elliott Hughes
b7659613b2 Remove androidGetTid.
Bug: 17048545
Change-Id: I93cbb2d7bd18d506b5f5f7f262dd9ac0fca053b4
2014-08-18 10:47:37 -07:00
Elliott Hughes
aab3b34cd7 am 4c818dc8: am 56b28f6b: Merge "RefBase: make Renamer destructor virtual"
* commit '4c818dc800d97e2fdee0337a0e9736099d90cc47':
  RefBase: make Renamer destructor virtual
2014-08-06 22:48:30 +00:00
Ukri Niemimuukko
00e56a248d RefBase: make Renamer destructor virtual
This patch makes the Renamer class destructor virtual and fixes
the incorrect constructor initialization list ordering.

These issues and related compiler warnings have been suppressed
by the build system which uses the gcc –isystem command
line option, unless a project explicitly adds the include the path
system/core/include to Android.mk and uses the templates.

Change-Id: Iff76a655eb8bd547adfe994c7315a005e98aed41
Signed-off-by: Ukri Niemimuukko <ukri.niemimuukko@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
Signed-off-by: Yong Yao <yong.yao@intel.com>
2014-08-06 00:12:06 -07:00
Jeff Brown
5ee915afe1 Add a couple of useful string functions.
Change-Id: I158f69917bab5f15482dd8f2b66b36a4cc0f11ad
2014-06-09 14:02:52 -07:00
Mark Salyzyn
881c89c54a am 7aa8cdfb: am 21157abc: am 8814bd1d: Merge "include: cleanup for -Wsystem-header"
* commit '7aa8cdfb317dcb7efb7127b070526df09da05377':
  include: cleanup for -Wsystem-header
2014-05-23 22:33:41 +00:00
Mark Salyzyn
7aa8cdfb31 am 21157abc: am 8814bd1d: Merge "include: cleanup for -Wsystem-header"
* commit '21157abcd932e899032689dba120d4f7cb08aa23':
  include: cleanup for -Wsystem-header
2014-05-23 22:31:24 +00:00
Mark Salyzyn
4887842c92 include: cleanup for -Wsystem-header
- warnings as errors, or errors introduced when -Wsystem-header
  was experimentally introduced.

Change-Id: Ia8f5b3c1c1096e191741223d52526aa48c7f1cc4
2014-05-23 15:09:57 -07:00
John Reck
d83186c444 Add VirtualLightRefBase
Change-Id: I040db87d9e87ba0584e7e5bdd72f0c319a522fa1
2014-05-09 15:27:22 -07:00
Igor Murashkin
8481765738 Merge "libutils: Clarify Condition::signal wakes up exactly one thread" 2014-04-15 22:50:02 +00:00
Igor Murashkin
db4193833c libutils: Clarify Condition::signal wakes up exactly one thread
Contrary to POSIX pthread_cond_signal guarantees, bionic will wake up
either zero or one threads.

Change-Id: I628fcd4d5bd8d5290104506f86caa82c54142230
2014-04-15 15:40:41 -07:00
John Reck
8af196c1f5 Merge "Add a peekOldestValue" 2014-04-14 20:17:53 +00:00
Andreas Gampe
02c9460a0a BitSet32 64b compatibility fix
Using __builtin_c{l,t}zl fails on 64b systems as unsigned long is
8B there. However, unsigned int is only guaranteed to be 2B. Introduce
a check that should be optimized away by the compiler.

Change-Id: I854d0817c6bb5ae13c257241240664bf8f1a7c8a
2014-04-11 22:41:46 -07:00
John Reck
9d8707c75a Add a peekOldestValue
Change-Id: I89d8ea14c8ac02653d9c0e1fe24a4b17bb9c87f5
2014-04-11 19:14:15 -07:00
Tim Murray
4854a36e2a am 1f87d3ab: am 83fd6375: am 31631861: Merge "Add guards to prevent typedefs when C++11 is available."
* commit '1f87d3ab8c384d03d1496c63f7faad15bd5eeba9':
  Add guards to prevent typedefs when C++11 is available.
2014-04-07 22:12:07 +00:00
Tim Murray
1f87d3ab8c am 83fd6375: am 31631861: Merge "Add guards to prevent typedefs when C++11 is available."
* commit '83fd6375f6d9016afe9bb03453d39b8c41cda548':
  Add guards to prevent typedefs when C++11 is available.
2014-04-07 22:06:38 +00:00
Tim Murray
ae83f84548 Add guards to prevent typedefs when C++11 is available.
char32_t and char16_t are both defined in C++11.

Change-Id: I44fe8f4f05f230c18a1b77fa21b6a40c8f8ecc2d
2014-04-07 14:11:21 -07:00
Michael Wright
a45ff0f586 am df33e8b5: Add BitSet64. DO NOT MERGE
* commit 'df33e8b544c457e4b08e8fa0b8a3eaf5eaf8fc2e':
  Add BitSet64. DO NOT MERGE
2014-03-26 19:29:05 +00:00
Michael Wright
df33e8b544 Add BitSet64. DO NOT MERGE
Change-Id: Idf3e21dfaa9f90f4dcb1b4d41eed3891dda99561
2014-03-24 16:51:01 -07:00