Simple support for reflecting rsForEach().
BUG=4203264
Change-Id: Idf722ee3fb07c8e46ac0c4628e753ff2fa6840cf
diff --git a/slang_rs_reflection.h b/slang_rs_reflection.h
index 2f9e18c..c26f82f 100644
--- a/slang_rs_reflection.h
+++ b/slang_rs_reflection.h
@@ -33,6 +33,7 @@
class RSContext;
class RSExportVar;
class RSExportFunc;
+ class RSExportForEach;
class RSReflection {
private:
@@ -68,6 +69,7 @@
int mNextExportVarSlot;
int mNextExportFuncSlot;
+ int mNextExportForEachSlot;
// A mapping from a field in a record type to its index in the rsType
// instance. Only used when generates TypeClass (ScriptField_*).
@@ -83,6 +85,7 @@
mPaddingFieldIndex = 1;
mNextExportVarSlot = 0;
mNextExportFuncSlot = 0;
+ mNextExportForEachSlot = 0;
return;
}
@@ -143,6 +146,7 @@
inline int getNextExportVarSlot() { return mNextExportVarSlot++; }
inline int getNextExportFuncSlot() { return mNextExportFuncSlot++; }
+ inline int getNextExportForEachSlot() { return mNextExportForEachSlot++; }
// Will remove later due to field name information is not necessary for
// C-reflect-to-Java
@@ -234,6 +238,9 @@
void genExportFunction(Context &C,
const RSExportFunc *EF);
+ void genExportForEach(Context &C,
+ const RSExportForEach *EF);
+
bool genTypeClass(Context &C,
const RSExportRecordType *ERT,
std::string &ErrorMsg);