On Mon, 6 Nov 2023 04:06:57 GMT, Julian Waters <[email protected]> wrote:

> By the way, how outdated is the comment that awt.dll should not rely on 
> msvcp.dll? As far as I can tell we now always distribute msvcp.dll in the 
> JDK, and it would help a lot if I could use the C++ Standard Library for this

Do we ? I'm not sure why that is. We've previously tried hard to avoid that.
Eg https://hg.openjdk.org/jdk9/jdk9/rev/f3c96aea372d

We should still stay away from it.

But it doesn't matter because the changes you are making aren't going in the 
right direction.
The root of the compiler complaints is the gotos isn't it ?
So the code needs to be changed to not use gotos.
But there are hundreds of those. I guess only a few trigger the warnings ?
So your awt_Canvas example should end up looking something like this
WARNING: I just edited in place, haven't built it, haven't tested it, it is to 
show what the code should look like



void AwtCanvas::_SetEraseBackground(void *param)
{
    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
                    
    SetEraseBackgroundStruct *sebs = (SetEraseBackgroundStruct *)param;
    jobject canvas = sebs->canvas;
                    
    if (canvas == NULL) {
        env->ExceptionClear(); 
        JNU_ThrowNullPointerException(env, "canvas");
    } else {            
        PDATA pData = JNI_GET_PDATA(canvas);
        if (pData == NULL) {
            env->DeleteGlobalRef(canvas);
            THROW_NULL_PDATA_IF_NOT_DESTROYED(canvas);
        } else {            
            AwtCanvas *c = (AwtCanvas*)pData;
            c->m_eraseBackground = sebs->doErase;
            c->m_eraseBackgroundOnResize = sebs->doEraseOnResize;
            env->DeleteGlobalRef(canvas);
        }                   
    }                        
    delete sebs;            
}

-------------

PR Comment: https://git.openjdk.org/jdk/pull/15096#issuecomment-1796303631

Reply via email to