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-02-26 13:22:26 -0800
commita7725cbfcdfe2eaf868571c77f004a4d7208e8ef (patch)
treea882e62ea51f69a7394078639955f4657b7eccb8 /rsElement.cpp
parentef5a67ff7097ff4af054d07060c42e1e5ce9bad0 (diff)
downloadrs-a7725cbfcdfe2eaf868571c77f004a4d7208e8ef.tar.gz
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
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);
}
}