summaryrefslogtreecommitdiff
path: root/rsElement.cpp
diff options
context:
space:
mode:
authorYang Ni <yangni@google.com>2015-12-11 11:01:46 -0800
committerYang Ni <yangni@google.com>2016-03-03 08:48:10 -0800
commit04dcca95461a2ffab4ce5209a453b752ab5c606b (patch)
tree023f61c5c82bd766d39f9e9a33df6cb4021f8709 /rsElement.cpp
parent8c5e658838e91bfc9953d8f280444384c78716ed (diff)
Added a flag to APIs for rsObj creation
Bug: 25570907 This flag will distinguish calls from Java/JNI vs. Single-Source RS. For the latter, the user ref count should remain zero to avoid memory leaks. Change-Id: Id3604f93b166089e3aca896d1c6c509b3ea19bcf (cherry picked from commit a7725cbfcdfe2eaf868571c77f004a4d7208e8ef)
Diffstat (limited to 'rsElement.cpp')
-rw-r--r--rsElement.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/rsElement.cpp b/rsElement.cpp
index a734400f..fedb3345 100644
--- a/rsElement.cpp
+++ b/rsElement.cpp
@@ -139,7 +139,8 @@ Element *Element::createFromStream(Context *rsc, IStream *stream) {
component.getType(),
component.getKind(),
component.getIsNormalized(),
- component.getVectorSize());
+ component.getVectorSize(),
+ true /* Java only */);
}
const Element **subElems = new const Element *[fieldCount];
@@ -155,7 +156,8 @@ Element *Element::createFromStream(Context *rsc, IStream *stream) {
}
const Element *elem = Element::create(rsc, fieldCount, subElems, subElemNames,
- subElemNamesLengths, arraySizes);
+ subElemNamesLengths, arraySizes,
+ true /* Java only */);
for (uint32_t ct = 0; ct < fieldCount; ct ++) {
delete [] subElemNames[ct];
subElems[ct]->decUserRef();
@@ -414,8 +416,10 @@ RsElement rsi_ElementCreate(Context *rsc,
RsDataType dt,
RsDataKind dk,
bool norm,
- uint32_t vecSize) {
- return (RsElement)Element::create(rsc, dt, dk, norm, vecSize);
+ uint32_t vecSize,
+ bool fromJava) {
+ const Element* ret = Element::create(rsc, dt, dk, norm, vecSize, fromJava);
+ return (RsElement) ret;
}
@@ -428,9 +432,10 @@ RsElement rsi_ElementCreate2(Context *rsc,
const size_t * nameLengths,
const uint32_t * arraySizes,
- size_t arraySizes_length) {
+ size_t arraySizes_length,
+ bool fromJava) {
return (RsElement)Element::create(rsc, ein_length, (const Element **)ein,
- names, nameLengths, arraySizes);
+ names, nameLengths, arraySizes, fromJava);
}
}