Esempio n. 1
0
JniLocalRef::JniLocalRef(const JniLocalRef& rhs)
{
	JEnv env;

	m_obj = rhs.m_isWeak ? rhs.m_obj : env.NewLocalRef(rhs.m_obj);
	m_isWeak = rhs.m_isWeak;
}
jobject NativePlatform::ConvertJsValueToJavaObject(JEnv& env, const Local<Value>& value, int classReturnType)
{
	JsArgToArrayConverter argConverter(value, false/*is implementation object*/, classReturnType);
	jobject jr = argConverter.GetConvertedArg();
	jobject javaResult = nullptr;
	if (jr != nullptr)
	{
		javaResult = env.NewLocalRef(jr);
	}

	return javaResult;
}
void JsArgToArrayConverter::SetConvertedObject(JEnv& env, int index, jobject obj, bool isGlobalRef)
{
	if (obj == nullptr)
	{
		m_argsAsObject[index] = obj;
	}
	else if (isGlobalRef)
	{
		m_argsAsObject[index] = obj;
	}
	else
	{
		m_storedIndexes.push_back(index);
		m_argsAsObject[index] = env.NewLocalRef(obj);
	}
}
Esempio n. 4
0
JniLocalRef& JniLocalRef::operator=(const JniLocalRef& rhs)
{
    if(this != &rhs)
    {
    	m_isWeak = rhs.m_isWeak;
    	if (m_isWeak)
    	{
    		m_obj = rhs.m_obj;
    	}
    	else
    	{
			JEnv env;
			if (m_obj != nullptr)
			{
				env.DeleteLocalRef(m_obj);
			}
			m_obj = (rhs.m_obj != nullptr)
						? env.NewLocalRef(rhs.m_obj)
						: nullptr;
    	}
    }
    return *this;
}