# Cppcheck report - LibreOffice: odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/unix/nativeview.c

      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112

    /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
    /*************************************************************************
     *
     *  The Contents of this file are made available subject to the terms of
     *  the BSD license.
     *
     *  Copyright 2000, 2010 Oracle and/or its affiliates.
     *  All rights reserved.
     *
     *  Redistribution and use in source and binary forms, with or without
     *  modification, are permitted provided that the following conditions
     *  are met:
     *  1. Redistributions of source code must retain the above copyright
     *     notice, this list of conditions and the following disclaimer.
     *  2. Redistributions in binary form must reproduce the above copyright
     *     notice, this list of conditions and the following disclaimer in the
     *     documentation and/or other materials provided with the distribution.
     *  3. Neither the name of Sun Microsystems, Inc. nor the names of its
     *     contributors may be used to endorse or promote products derived
     *     from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
     *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
     *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
     *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     *
     *************************************************************************/

    #include <X11/Xlib.h>
    #include <X11/Xutil.h>
    #include <X11/Intrinsic.h>

    #include "jawt.h"
    #include "jawt_md.h"
    #include "nativeview.h"

    #define MY_ASSERT(X,S) if (!X) { fprintf(stderr,S); return 0L;}

    #define SYSTEM_WIN32   1
    #define SYSTEM_WIN16   2
    #define SYSTEM_JAVA    3
    #define SYSTEM_OS2     4
    #define SYSTEM_MAC     5
    #define SYSTEM_XWINDOW 6

    /*****************************************************************************/
    /*
     * Class:     NativeView
     * Method:    getNativeWindowSystemType
     * Signature: ()I
     */
    JNIEXPORT jint JNICALL Java_NativeView_getNativeWindowSystemType<--- The function 'Java_NativeView_getNativeWindowSystemType' is never used.
      (JNIEnv * env, jobject obj_this)
    {
        return (SYSTEM_XWINDOW);
    }

    /*****************************************************************************/
    /*
     * Class:     NativeView
     * Method:    getNativeWindow
     * Signature: ()J
     */
    JNIEXPORT jlong JNICALL Java_NativeView_getNativeWindow<--- The function 'Java_NativeView_getNativeWindow' is never used.
      (JNIEnv * env, jobject obj_this)
    {
        jboolean                    result  ;
        jint                        lock    ;
        JAWT                        awt     ;
        JAWT_DrawingSurface*        ds      ;
        JAWT_DrawingSurfaceInfo*    dsi     ;
        JAWT_X11DrawingSurfaceInfo* dsi_x11 ;
        Drawable                    drawable;

        /* Get the AWT */
        awt.version = JAWT_VERSION_1_3;
        result      = JAWT_GetAWT(env, &awt);
        MY_ASSERT(result != JNI_FALSE,"wrong jawt version");

        /* Get the drawing surface */
        if ((ds = awt.GetDrawingSurface(env, obj_this)) == NULL)
            return 0L;

        /* Lock the drawing surface */
        lock = ds->Lock(ds);
        MY_ASSERT((lock & JAWT_LOCK_ERROR)==0,"can't lock the drawing surface");

        /* Get the drawing surface info */
        dsi = ds->GetDrawingSurfaceInfo(ds);

        /* Get the platform-specific drawing info */
        dsi_x11  = (JAWT_X11DrawingSurfaceInfo*)dsi->platformInfo;
        drawable = dsi_x11->drawable;

        /* Free the drawing surface info */
        ds->FreeDrawingSurfaceInfo(dsi);
        /* Unlock the drawing surface */
        ds->Unlock(ds);
        /* Free the drawing surface */
        awt.FreeDrawingSurface(ds);

        return ((jlong)drawable);
    }

    /* vim:set shiftwidth=4 softtabstop=4 expandtab: */