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>
diff --git a/generate_java_binder.cpp b/generate_java_binder.cpp
index b801319..89df307 100644
--- a/generate_java_binder.cpp
+++ b/generate_java_binder.cpp
@@ -322,7 +322,7 @@
c->statements->Add(new VariableDeclaration(v));
- if (convert_direction(arg->direction.data) & IN_PARAMETER) {
+ if (arg->GetDirection() & AidlArgument::IN_DIR) {
generate_create_from_parcel(t, c->statements, v,
stubClass->transact_data, &cl);
} else {
@@ -377,7 +377,7 @@
const Type* t = types->Find(arg->type.type.data);
Variable* v = stubArgs.Get(i++);
- if (convert_direction(arg->direction.data) & OUT_PARAMETER) {
+ if (arg->GetDirection() & AidlArgument::OUT_DIR) {
generate_write_to_parcel(t, c->statements, v,
stubClass->transact_reply,
Type::PARCELABLE_WRITE_RETURN_VALUE);
@@ -440,8 +440,8 @@
for (const std::unique_ptr<AidlArgument>& arg : *method->args) {
const Type* t = types->Find(arg->type.type.data);
Variable* v = new Variable(t, arg->name.data, arg->type.dimension);
- int dir = convert_direction(arg->direction.data);
- if (dir == OUT_PARAMETER && arg->type.dimension != 0) {
+ AidlArgument::Direction dir = arg->GetDirection();
+ if (dir == AidlArgument::OUT_DIR && arg->type.dimension != 0) {
IfStatement* checklen = new IfStatement();
checklen->expression = new Comparison(v, "==", NULL_VALUE);
checklen->statements->Add(new MethodCall(_data, "writeInt", 1,
@@ -451,7 +451,7 @@
1, new FieldVariable(v, "length")));
tryStatement->statements->Add(checklen);
}
- else if (dir & IN_PARAMETER) {
+ else if (dir & AidlArgument::IN_DIR) {
generate_write_to_parcel(t, tryStatement->statements, v, _data, 0);
}
}
@@ -481,7 +481,7 @@
for (const std::unique_ptr<AidlArgument>& arg : *method->args) {
const Type* t = types->Find(arg->type.type.data);
Variable* v = new Variable(t, arg->name.data, arg->type.dimension);
- if (convert_direction(arg->direction.data) & OUT_PARAMETER) {
+ if (arg->GetDirection() & AidlArgument::OUT_DIR) {
generate_read_from_parcel(t, tryStatement->statements,
v, _reply, &cl);
}