SF3436102 convert 32 bit memory pointers to 64 bit where not already converted.
This commit is contained in:
@@ -37,8 +37,8 @@ extern "C"
|
||||
IDispatch *extractDispatch(JNIEnv *env, jobject arg)
|
||||
{
|
||||
jclass argClass = env->GetObjectClass(arg);
|
||||
jfieldID ajf = env->GetFieldID( argClass, DISP_FLD, "I");
|
||||
jint anum = env->GetIntField(arg, ajf);
|
||||
jfieldID ajf = env->GetFieldID( argClass, DISP_FLD, "J");
|
||||
jlong anum = env->GetLongField(arg, ajf);
|
||||
IDispatch *v = (IDispatch *)anum;
|
||||
return v;
|
||||
}
|
||||
@@ -76,7 +76,7 @@ JNIEXPORT jobject JNICALL Java_com_jacob_com_Dispatch_QueryInterface
|
||||
}
|
||||
|
||||
jclass autoClass = env->FindClass("com/jacob/com/Dispatch");
|
||||
jmethodID autoCons = env->GetMethodID(autoClass, "<init>", "(I)V");
|
||||
jmethodID autoCons = env->GetMethodID(autoClass, "<init>", "(J)V");
|
||||
// construct a Dispatch object to return
|
||||
// I am copying the pointer to java
|
||||
// jacob-msg 1817 - SF 1053871 : QueryInterface already called AddRef!!
|
||||
@@ -94,7 +94,7 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Dispatch_createInstanceNative
|
||||
(JNIEnv *env, jobject _this, jstring _progid)
|
||||
{
|
||||
jclass clazz = env->GetObjectClass(_this);
|
||||
jfieldID jf = env->GetFieldID( clazz, DISP_FLD, "I");
|
||||
jfieldID jf = env->GetFieldID( clazz, DISP_FLD, "J");
|
||||
|
||||
// if we used env->GetStringChars() would that let us drop the conversion?
|
||||
const char *progid = env->GetStringUTFChars(_progid, NULL);
|
||||
@@ -150,7 +150,7 @@ doDisp:
|
||||
}
|
||||
// CoCreateInstance called AddRef
|
||||
punk->Release();
|
||||
env->SetIntField(_this, jf, (unsigned int)pIDispatch);
|
||||
env->SetLongField(_this, jf, (jlong)pIDispatch);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -161,7 +161,7 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Dispatch_getActiveInstanceNative
|
||||
(JNIEnv *env, jobject _this, jstring _progid)
|
||||
{
|
||||
jclass clazz = env->GetObjectClass(_this);
|
||||
jfieldID jf = env->GetFieldID( clazz, DISP_FLD, "I");
|
||||
jfieldID jf = env->GetFieldID( clazz, DISP_FLD, "J");
|
||||
|
||||
// if we used env->GetStringChars() would that let us drop the conversion?
|
||||
const char *progid = env->GetStringUTFChars(_progid, NULL);
|
||||
@@ -193,7 +193,7 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Dispatch_getActiveInstanceNative
|
||||
}
|
||||
// GetActiveObject called AddRef
|
||||
punk->Release();
|
||||
env->SetIntField(_this, jf, (unsigned int)pIDispatch);
|
||||
env->SetLongField(_this, jf, (jlong)pIDispatch);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -204,7 +204,7 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Dispatch_coCreateInstanceNative
|
||||
(JNIEnv *env, jobject _this, jstring _progid)
|
||||
{
|
||||
jclass clazz = env->GetObjectClass(_this);
|
||||
jfieldID jf = env->GetFieldID( clazz, DISP_FLD, "I");
|
||||
jfieldID jf = env->GetFieldID( clazz, DISP_FLD, "J");
|
||||
|
||||
// if we used env->GetStringChars() would that let us drop the conversion?
|
||||
const char *progid = env->GetStringUTFChars(_progid, NULL);
|
||||
@@ -235,7 +235,7 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Dispatch_coCreateInstanceNative
|
||||
}
|
||||
// CoCreateInstance called AddRef
|
||||
punk->Release();
|
||||
env->SetIntField(_this, jf, (unsigned int)pIDispatch);
|
||||
env->SetLongField(_this, jf, (jlong)pIDispatch);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -245,13 +245,13 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Dispatch_release
|
||||
(JNIEnv *env, jobject _this)
|
||||
{
|
||||
jclass clazz = env->GetObjectClass(_this);
|
||||
jfieldID jf = env->GetFieldID( clazz, DISP_FLD, "I");
|
||||
jint num = env->GetIntField(_this, jf);
|
||||
jfieldID jf = env->GetFieldID( clazz, DISP_FLD, "J");
|
||||
jlong num = env->GetLongField(_this, jf);
|
||||
|
||||
IDispatch *disp = (IDispatch *)num;
|
||||
if (disp) {
|
||||
disp->Release();
|
||||
env->SetIntField(_this, jf, (unsigned int)0);
|
||||
env->SetIntField(_this, jf, 0ll);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,8 +44,8 @@ BOOL MapEventIIDs(IID*, CComBSTR **, DISPID **, int *, LPOLESTR , LPTYPEINFO );
|
||||
EventProxy *extractProxy(JNIEnv *env, jobject arg)
|
||||
{
|
||||
jclass argClass = env->GetObjectClass(arg);
|
||||
jfieldID ajf = env->GetFieldID( argClass, PROXY_FLD, "I");
|
||||
jint anum = env->GetIntField(arg, ajf);
|
||||
jfieldID ajf = env->GetFieldID( argClass, PROXY_FLD, "J");
|
||||
jlong anum = env->GetLongField(arg, ajf);
|
||||
EventProxy *v = (EventProxy *)anum;
|
||||
return v;
|
||||
}
|
||||
@@ -56,9 +56,9 @@ EventProxy *extractProxy(JNIEnv *env, jobject arg)
|
||||
void putProxy(JNIEnv *env, jobject arg, EventProxy *ep)
|
||||
{
|
||||
jclass argClass = env->GetObjectClass(arg);
|
||||
jfieldID ajf = env->GetFieldID( argClass, PROXY_FLD, "I");
|
||||
jint anum = env->GetIntField(arg, ajf);
|
||||
env->SetIntField(arg, ajf, (jint)ep);
|
||||
jfieldID ajf = env->GetFieldID( argClass, PROXY_FLD, "J");
|
||||
jlong anum = env->GetLongField(arg, ajf);
|
||||
env->SetLongField(arg, ajf, (jlong)ep);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@ extern "C"
|
||||
IStream *extractStream(JNIEnv *env, jobject arg)
|
||||
{
|
||||
jclass argClass = env->GetObjectClass(arg);
|
||||
jfieldID ajf = env->GetFieldID( argClass, "m_pStream", "I");
|
||||
jint anum = env->GetIntField(arg, ajf);
|
||||
jfieldID ajf = env->GetFieldID( argClass, "m_pStream", "J");
|
||||
jlong anum = env->GetLongField(arg, ajf);
|
||||
IStream *v = (IStream *)anum;
|
||||
return v;
|
||||
}
|
||||
@@ -56,8 +56,8 @@ JNIEXPORT void JNICALL Java_com_jacob_com_DispatchProxy_MarshalIntoStream
|
||||
}
|
||||
// store the stream pointer on the object
|
||||
jclass argClass = env->GetObjectClass(_this);
|
||||
jfieldID ajf = env->GetFieldID( argClass, "m_pStream", "I");
|
||||
env->SetIntField(_this, ajf, (jint)ps);
|
||||
jfieldID ajf = env->GetFieldID( argClass, "m_pStream", "J");
|
||||
env->SetLongField(_this, ajf, (jlong)ps);
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL Java_com_jacob_com_DispatchProxy_MarshalFromStream
|
||||
@@ -74,8 +74,8 @@ JNIEXPORT jobject JNICALL Java_com_jacob_com_DispatchProxy_MarshalFromStream
|
||||
// zero out the stream pointer on the object
|
||||
// since the stream can only be read once
|
||||
jclass argClass = env->GetObjectClass(_this);
|
||||
jfieldID ajf = env->GetFieldID( argClass, "m_pStream", "I");
|
||||
env->SetIntField(_this, ajf, (unsigned int)0);
|
||||
jfieldID ajf = env->GetFieldID( argClass, "m_pStream", "J");
|
||||
env->SetLongField(_this, ajf, 0ll);
|
||||
|
||||
if (!SUCCEEDED(hr))
|
||||
{
|
||||
@@ -83,7 +83,7 @@ JNIEXPORT jobject JNICALL Java_com_jacob_com_DispatchProxy_MarshalFromStream
|
||||
return NULL;
|
||||
}
|
||||
jclass autoClass = env->FindClass("com/jacob/com/Dispatch");
|
||||
jmethodID autoCons = env->GetMethodID(autoClass, "<init>", "(I)V");
|
||||
jmethodID autoCons = env->GetMethodID(autoClass, "<init>", "(J)V");
|
||||
// construct a Dispatch object to return
|
||||
// I am copying the pointer to java
|
||||
if (pD) pD->AddRef();
|
||||
@@ -98,8 +98,8 @@ JNIEXPORT void JNICALL Java_com_jacob_com_DispatchProxy_release
|
||||
if (ps) {
|
||||
ps->Release();
|
||||
jclass argClass = env->GetObjectClass(_this);
|
||||
jfieldID ajf = env->GetFieldID( argClass, "m_pStream", "I");
|
||||
env->SetIntField(_this, ajf, (unsigned int)0);
|
||||
jfieldID ajf = env->GetFieldID( argClass, "m_pStream", "J");
|
||||
env->SetLongField(_this, ajf, 0ll);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,8 +40,8 @@ IEnumVARIANT* extractEnumVariant(JNIEnv* env, jobject arg)
|
||||
{
|
||||
jfieldID FID_pIEnumVARIANT = 0;
|
||||
jclass clazz = env->GetObjectClass(arg);
|
||||
FID_pIEnumVARIANT = env->GetFieldID(clazz, "m_pIEnumVARIANT", "I");
|
||||
return (IEnumVARIANT*)env->GetIntField(arg, FID_pIEnumVARIANT);
|
||||
FID_pIEnumVARIANT = env->GetFieldID(clazz, "m_pIEnumVARIANT", "J");
|
||||
return (IEnumVARIANT*)env->GetLongField(arg, FID_pIEnumVARIANT);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
@@ -107,8 +107,8 @@ Java_com_jacob_com_EnumVariant_release(JNIEnv* env, jobject _this)
|
||||
self->Release();
|
||||
jfieldID FID_pIEnumVARIANT = 0;
|
||||
jclass clazz = env->GetObjectClass(_this);
|
||||
FID_pIEnumVARIANT = env->GetFieldID(clazz, "m_pIEnumVARIANT", "I");
|
||||
env->SetIntField(_this, FID_pIEnumVARIANT, (unsigned int)0);
|
||||
FID_pIEnumVARIANT = env->GetFieldID(clazz, "m_pIEnumVARIANT", "J");
|
||||
env->SetLongField(_this, FID_pIEnumVARIANT, 0ll);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -60,8 +60,8 @@ static SAFEARRAY *makeArray(int vt, int nDims, long *lb, long *cel)
|
||||
VARIANT *extractWrapper(JNIEnv *env, jobject arg)
|
||||
{
|
||||
jclass argClass = env->GetObjectClass(arg);
|
||||
jfieldID vf = env->GetFieldID( argClass, V_FLD, "I");
|
||||
jint vnum = env->GetIntField(arg, vf);
|
||||
jfieldID vf = env->GetFieldID( argClass, V_FLD, "J");
|
||||
jlong vnum = env->GetLongField(arg, vf);
|
||||
if (vnum != NULL)
|
||||
{
|
||||
// if vnum is not NULL, then there is a Variant wrapper present
|
||||
@@ -111,8 +111,8 @@ void setSA(JNIEnv *env, jobject arg, SAFEARRAY *sa, int copy)
|
||||
// construct a variant to hold the result
|
||||
// the variant then owns the array
|
||||
jclass argClass = env->GetObjectClass(arg);
|
||||
jfieldID ajf = env->GetFieldID( argClass, V_FLD, "I");
|
||||
jint vnum = env->GetIntField(arg, ajf);
|
||||
jfieldID ajf = env->GetFieldID( argClass, V_FLD, "J");
|
||||
jlong vnum = env->GetLongField(arg, ajf);
|
||||
VARIANT *v = (VARIANT *)vnum;
|
||||
if (v == NULL)
|
||||
{
|
||||
@@ -123,7 +123,7 @@ void setSA(JNIEnv *env, jobject arg, SAFEARRAY *sa, int copy)
|
||||
SafeArrayGetVartype(sa, &vt);
|
||||
V_VT(v) = VT_ARRAY | vt;
|
||||
V_ARRAY(v) = copy ? copySA(sa) : sa;
|
||||
env->SetIntField(arg, ajf, (unsigned int)v);
|
||||
env->SetLongField(arg, ajf, (jlong)v);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -187,10 +187,10 @@ JNIEXPORT void JNICALL Java_com_jacob_com_SafeArray_destroy
|
||||
// case free the variant, but if there is just a raw SA, then
|
||||
// the owning variant will free it
|
||||
jclass saClass = env->GetObjectClass(_this);
|
||||
jfieldID jf = env->GetFieldID(saClass, V_FLD, "I");
|
||||
jfieldID jf = env->GetFieldID(saClass, V_FLD, "J");
|
||||
VariantClear(v);
|
||||
delete v;
|
||||
env->SetIntField(_this, jf, (unsigned int)0);
|
||||
env->SetIntField(_this, jf, 0ll);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,8 +37,8 @@ extern "C"
|
||||
VARIANT *extractVariant(JNIEnv *env, jobject arg)
|
||||
{
|
||||
jclass argClass = env->GetObjectClass(arg);
|
||||
jfieldID ajf = env->GetFieldID( argClass, VARIANT_FLD, "I");
|
||||
jint anum = env->GetIntField(arg, ajf);
|
||||
jfieldID ajf = env->GetFieldID( argClass, VARIANT_FLD, "J");
|
||||
jlong anum = env->GetLongField(arg, ajf);
|
||||
VARIANT *v = (VARIANT *)anum;
|
||||
return v;
|
||||
}
|
||||
@@ -47,7 +47,7 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_release
|
||||
(JNIEnv *env, jobject _this)
|
||||
{
|
||||
jclass clazz = env->GetObjectClass(_this);
|
||||
jfieldID jf = env->GetFieldID(clazz, VARIANT_FLD, "I");
|
||||
jfieldID jf = env->GetFieldID(clazz, VARIANT_FLD, "J");
|
||||
VARIANT *v = extractVariant(env, _this);
|
||||
if (v) {
|
||||
// fix byref leak
|
||||
@@ -75,10 +75,10 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_init
|
||||
(JNIEnv *env, jobject _this)
|
||||
{
|
||||
jclass clazz = env->GetObjectClass(_this);
|
||||
jfieldID jf = env->GetFieldID( clazz, VARIANT_FLD, "I");
|
||||
jfieldID jf = env->GetFieldID( clazz, VARIANT_FLD, "J");
|
||||
VARIANT *v = new VARIANT();
|
||||
VariantInit(v);
|
||||
env->SetIntField(_this, jf, (unsigned int)v);
|
||||
env->SetLongField(_this, jf, (jlong)v);
|
||||
}
|
||||
|
||||
|
||||
@@ -102,8 +102,8 @@ void zeroVariant(JNIEnv *env, jobject _this)
|
||||
delete v;
|
||||
|
||||
jclass clazz = env->GetObjectClass(_this);
|
||||
jfieldID jf = env->GetFieldID(clazz, VARIANT_FLD, "I");
|
||||
env->SetIntField(_this, jf, (unsigned int)0);
|
||||
jfieldID jf = env->GetFieldID(clazz, VARIANT_FLD, "J");
|
||||
env->SetLongField(_this, jf, 0ll);
|
||||
}
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@ JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toEnumVariant
|
||||
}
|
||||
jclass autoClass = env->FindClass("com/jacob/com/EnumVariant");
|
||||
jmethodID autoCons =
|
||||
env->GetMethodID(autoClass, "<init>", "(I)V");
|
||||
env->GetMethodID(autoClass, "<init>", "(J)V");
|
||||
// construct an Unknown object to return
|
||||
IUnknown *unk = V_UNKNOWN(v);
|
||||
IEnumVARIANT *ie;
|
||||
@@ -406,7 +406,7 @@ JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toVariantDispatch
|
||||
}
|
||||
jclass autoClass = env->FindClass("com/jacob/com/Dispatch");
|
||||
jmethodID autoCons =
|
||||
env->GetMethodID(autoClass, "<init>", "(I)V");
|
||||
env->GetMethodID(autoClass, "<init>", "(J)V");
|
||||
// construct a Dispatch object to return
|
||||
IDispatch *disp = V_DISPATCH(v);
|
||||
// I am copying the pointer to java
|
||||
@@ -1099,7 +1099,7 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putVariantVariant
|
||||
* Added 1.12 pre 6
|
||||
*
|
||||
* */
|
||||
JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_getVariantVariant
|
||||
JNIEXPORT jlong JNICALL Java_com_jacob_com_Variant_getVariantVariant
|
||||
(JNIEnv *env, jobject _this)
|
||||
{
|
||||
|
||||
@@ -1117,7 +1117,7 @@ JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_getVariantVariant
|
||||
// enclosed. This relies on the java layer to zero out its ref to this
|
||||
// enclosed variant before the gc can come along and free the memory out from
|
||||
// under this enclosing variant.
|
||||
return (unsigned int)refVar;
|
||||
return (jlong)refVar;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
||||
@@ -541,7 +541,7 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putVariantVariant
|
||||
* Method: getVariantVariant
|
||||
* Signature: ()I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_getVariantVariant
|
||||
JNIEXPORT jlong JNICALL Java_com_jacob_com_Variant_getVariantVariant
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user