c5afb404a8e71475993f70239df09209fa428d25 |
|
01-Mar-2016 |
Casey Dahlin <sadmac@google.com> |
Propagate interface annotations to methods Change-Id: I85f9686e4b5df7df0d9fb77e6a1b50a93ff3e2d7 Test: Unit tests pass Bug: 26911508
/system/tools/aidl/type_namespace.cpp
|
5d9bc936e45b5ffe487b1807b4a028dc3dc4df9f |
|
01-Feb-2016 |
Christopher Wiley <wiley@google.com> |
Support @utf8InCpp List<String> Bug: 26729450 Change-Id: I2ac61aadef4c3ff0527fe68b3a104f72821dd2c4 Test: unit, integration tests pass
/system/tools/aidl/type_namespace.cpp
|
9f40372e71c5e2fdf840eeabb5531f12665e9a91 |
|
28-Jan-2016 |
Christopher Wiley <wiley@google.com> |
Remap String to alternate types when @utf8 or @utf8InCpp Now, it is no longer sufficient to identify an AIDL type by its package and class name, since the list of annotations is also needed to uniquely identify the type. Express this by mapping "@utf8InCpp String" to aidl-internal.Utf8InCppString and then re-using existing mechanism to ask for a language specific type given the canonical AIDL type string. - Adding another type variant and corresponding pointer (i.e. the way nullable and array work) would cause that type hierarchy to expand the number of ways we have to connect the types. - Passing a set of annotations through the type namespace adds syntactic cruft we can avoid by mapping annotations to special packages. - Adding special getters for "utf8 string type" expands the contract between the generic type namespace and the language specific type name spaces. Currently the only mechanism to get a type is to provide its canonical AIDL type. Support @utf8InCpp in Java generation for the sake of unittests passing. This type is identical to a normal string type (UTF16 on the wire). Bug: 26729450 Test: unittests continue to pass Change-Id: Ib017ce40ea01a50b50a157c0ef8b483a892b99b9
/system/tools/aidl/type_namespace.cpp
|
934a82d1b045a5944d115dece4cf01f539103c11 |
|
27-Jan-2016 |
Christopher Wiley <wiley@google.com> |
Make TypeNamespace take AidlNode subclass arguments Because annotations are attached to AidlType, we need to know the complete AidlType of arguments and return values in order to decide which generated type to use. Make it an invariant that a TypeNamespace takes only subclasses of AidlNode from aidl.cpp to make this easier to reason about. For now, leave most of the existing implementation in place, but push it down into LanguageTypeNamespace. Bug: 26729450 Test: unittests still pass Change-Id: I6684564995c734def96daeccc03dfd5d264469ee
/system/tools/aidl/type_namespace.cpp
|
e22b41a8ecf20704050ef6dd4abdd0a39adb2320 |
|
25-Jan-2016 |
Christopher Wiley <wiley@google.com> |
Consolidate logic to retreive language specific type In preparation for adding some special casing to the "String" AIDL type, consolidate the logic to pick a language specific type from the aidl type into a single helper function GetTypeImpl(). Rename GetValidatableType to GetTypeByName to avoid confusion and better describe the semantics of that method. Bug: 26729450 Test: unittests continue to pass Change-Id: Ie9391ea90a31da77657353a87031492849b58409
/system/tools/aidl/type_namespace.cpp
|
57dbe24bcb8f4509a876e8445c78d9504d7e616a |
|
04-Dec-2015 |
Casey Dahlin <sadmac@google.com> |
Add support for @nullable annotation Using this annotation will now cause C++ types to be wrapped in unique_ptr, and by extension be capable of handling null values. Support extends to all arrays, Strings, Lists, and Parcelables. Change-Id: I148a3666279c2badcba097b8925e55f8fcecb9c2 Test: Unit tests pass Bug: 25969194 Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/type_namespace.cpp
|
0a62067f35e957493bc37c4b42dfdcfc16353831 |
|
04-Dec-2015 |
Elliott Hughes <enh@google.com> |
Track base/ -> android-base/ change. Change-Id: I02b64b42c17d248c5fb2c4de4b0778a441e018e3
/system/tools/aidl/type_namespace.cpp
|
09af469476ea6d187b52f22113d3b168a887100c |
|
30-Oct-2015 |
Christopher Wiley <wiley@google.com> |
Consolidate type checking logic Move logic used to check types used in AIDL into a common superclass of the language specific type namespaces. Add a templated LanguageTypeNamespace class to allow language specific type reasoning while sharing an implementation. Move functionality important to the the AIDL type checking into ValidatableType and out of the Java and C++ subclasses. Removed GenericType from the Java type system because it messed around with the canonical name for a type post construction, while adding absolutely no value of its own. Bug: 24470786 Test: unittests continue to pass, full build of android succeeds. Change-Id: Ic03eb5d770c7f51abbde87c20a9b7287ce6a277e
/system/tools/aidl/type_namespace.cpp
|
cd8e89795c331e3e5c75e92d7c7804f389804e08 |
|
26-Oct-2015 |
Christopher Wiley <wiley@google.com> |
Consolidate container canonicalization logic We need this same logic while piecing together C++ types because we still have to reason about the type names used in AIDL. Bug: 24470786 Test: unittests pass, integration tests pass Change-Id: Ief2d531e1dace5e5e299f3aa246a870eb9c932c6
/system/tools/aidl/type_namespace.cpp
|
7fe26299e5b652c1bdf003e8e3db5ea20269da92 |
|
24-Oct-2015 |
Christopher Wiley <wiley@google.com> |
Fix up some error reporting in type_namespace.cpp - Use AidlType::ToString() to properly report array types - Don't mention the name of the parameter twice when reporting errors Bug: None Test: Errors writing integration tests are properly reported now. Change-Id: I472d1f6279e4f94799518ee8ed0ef915d0974a32
/system/tools/aidl/type_namespace.cpp
|
90be4e3fe6d16ea8e8263b80989ef2ab4e6ef9c6 |
|
20-Oct-2015 |
Christopher Wiley <wiley@google.com> |
Fix segfault on missing package declaration Add unittests to enforce this doesn't happen again. While here add unittests for out params in oneway methods and make ownership of AidlInterface pointers more explicit. Also fix a bug where we would disallow returning void from functions in C++ generation. Bug: 24862770 Test: Unittests pass Change-Id: I4fa67489ad1fff0d4453d38689e54b9f5ad08c43
/system/tools/aidl/type_namespace.cpp
|
b656a3b1954bbe4b548a3c11274c833bbca35935 |
|
16-Oct-2015 |
Christopher Wiley <wiley@google.com> |
Generate C++ in namespaces based on package Bug: 24862770 Test: unittests Change-Id: Iaa3b4716ca340ade745208a2f2efc057205d0f1d
/system/tools/aidl/type_namespace.cpp
|
98a544b567e20f6c8492e1d4eb8869e759ae74d9 |
|
14-Oct-2015 |
Casey Dahlin <sadmac@google.com> |
Remove parse_helpers.cpp/h/unit tests This test was very silly, and the contents of this file are better off elsewhere. Bug: 24948220 Change-Id: I800c9035806ba42038dab8a681755d0ce581a530 Test: Unit tests Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/type_namespace.cpp
|
f7a421c02d43c3289ca45f0d5ccdf8d27e605f5a |
|
06-Oct-2015 |
Casey Dahlin <sadmac@google.com> |
Use parser to find array brackets Change-Id: Ib93032113c92fe23e1a7e4ac9b990a065f2b5d19 Test: Unit tests, Full Android Rebuild Bugs: 24680682 Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/type_namespace.cpp
|
f2d23f7f05252fa1a06a8f95bd9475fa9d414c0c |
|
03-Oct-2015 |
Casey Dahlin <sadmac@google.com> |
Kill comments token in AidlMethod Change-Id: I3df6629eaa5b56093d2453269d4b138987bee7ce Test: unit tests Bug: 24410295 Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/type_namespace.cpp
|
0ee3758e1f452a8bf99a5975b4f585035369d8fb |
|
01-Oct-2015 |
Casey Dahlin <sadmac@google.com> |
Replace type_type struct with AidlType class Change-Id: I642f55dba89681cd7dbf61880b4092c8d27050a6 Test: unit tests Bug: 24410295 Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/type_namespace.cpp
|
d127b50f07eed0cf78dfc956697031edea41043c |
|
30-Sep-2015 |
Casey Dahlin <sadmac@google.com> |
Don't store AidlArgument name buffer_type We now simply extract the string and store it sanely and destructably. Test: unit tests Bug: 24410295 Change-Id: I5a2588df688e019d66651a58ea5e5594de8a7e47 Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/type_namespace.cpp
|
c378c9946ac42e225be4fe37d3b97e1b88a97304 |
|
30-Sep-2015 |
Casey Dahlin <sadmac@google.com> |
Stop storing the direction buffer We pull the information out of the direction buffer_type immediately and pack it safely in to privates where it can be accessed with sane accessors. Test: unit tests Bug: 24410295 Change-Id: I84e4cf50aad9202210fc9c3db5dd78858991ecd7 Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/type_namespace.cpp
|
bc7a50a9bb4b97affc05f872d0cce02e54861e23 |
|
29-Sep-2015 |
Casey Dahlin <sadmac@google.com> |
Turn arg_type into a class called AIDLArgument We also get rid of its linked list property and use std::vector to store lists of arguments in method_type. We still expose most of the same data publicly, but there's going to be a lot of high-touch changes coming with this transition so it's better to break the change set here. Change-Id: I71a3dfe1e0fb9cd9437ec81de681b72137fc02cf Test: unit tests Bug: 24410295 Signed-off-by: Casey Dahlin <sadmac@google.com>
/system/tools/aidl/type_namespace.cpp
|
fb4b22dfbe0f87aaad492dc8a25201179c235bae |
|
26-Sep-2015 |
Christopher Wiley <wiley@google.com> |
Explicitly create container types Now we explicitly give ourselves a change to create each container type before attempting to resolve a type name to an instance of Type. In the process we finally remove all knowledge of specific types from aidl.cpp by moving logic into the TypeNamespace itself. Bug: 24303749 Test: Compiles, unittests, clean build of aosp_arm passes. Change-Id: Ie5e1b29020618863dac9417e0a60730ddb0dfc02
/system/tools/aidl/type_namespace.cpp
|