~james-page/ubuntu/oneiric/jcc/fix-library-linking

« back to all changes in this revision

Viewing changes to _jcc/java/lang/Object.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Ludovico Cavedon
  • Date: 2010-01-31 18:00:47 UTC
  • mfrom: (3.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20100131180047-jryq701kg5wq4943
Tags: 2.5-3
* Merge patch from Ubuntu by Onkar Shinde:
  - When CPU type is i686, use the JRE lib directory corresponding to i386.
    Fixes FTBFS on lpia.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* ====================================================================
2
 
 * Copyright (c) 2007-2007 Open Source Applications Foundation.
3
 
 *
4
 
 * Permission is hereby granted, free of charge, to any person obtaining a
5
 
 * copy of this software and associated documentation files (the "Software"),
6
 
 * to deal in the Software without restriction, including without limitation
7
 
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8
 
 * and/or sell copies of the Software, and to permit persons to whom the
9
 
 * Software is furnished to do so, subject to the following conditions: 
10
 
 *
11
 
 * The above copyright notice and this permission notice shall be included
12
 
 * in all copies or substantial portions of the Software. 
13
 
 *
14
 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
 
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
 
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
 
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
 
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19
 
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20
 
 * DEALINGS IN THE SOFTWARE.
21
 
 * ====================================================================
 
1
/*
 
2
 *   Licensed under the Apache License, Version 2.0 (the "License");
 
3
 *   you may not use this file except in compliance with the License.
 
4
 *   You may obtain a copy of the License at
 
5
 *
 
6
 *       http://www.apache.org/licenses/LICENSE-2.0
 
7
 *
 
8
 *   Unless required by applicable law or agreed to in writing, software
 
9
 *   distributed under the License is distributed on an "AS IS" BASIS,
 
10
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
11
 *   See the License for the specific language governing permissions and
 
12
 *   limitations under the License.
22
13
 */
23
14
 
24
15
#include <jni.h>
35
26
            mid_toString,
36
27
            mid_getClass,
37
28
            mid_hashCode,
 
29
            mid_equals,
38
30
            max_mid
39
31
        };
40
32
 
56
48
                                                       "()Ljava/lang/Class;");
57
49
                mids$[mid_hashCode] = env->getMethodID(cls, "hashCode",
58
50
                                                       "()I");
 
51
                mids$[mid_equals] = env->getMethodID(cls, "equals",
 
52
                                                     "(Ljava/lang/Object;)Z");
59
53
 
60
54
                class$ = (Class *) new JObject(cls);
61
55
            }
80
74
        {
81
75
            return env->callIntMethod(this$, mids$[mid_hashCode]);
82
76
        }
 
77
 
 
78
        jboolean Object::equals(const Object& a0) const
 
79
        {
 
80
            return env->callBooleanMethod(this$, mids$[mid_equals], a0.this$);
 
81
        }
83
82
    }
84
83
}
85
84
 
94
93
        static int t_Object_init(t_Object *self,
95
94
                                 PyObject *args, PyObject *kwds);
96
95
        static PyObject *t_Object_getClass(t_Object *self);
 
96
        static PyObject *t_Object_equals(t_Object *self, PyObject *arg);
97
97
 
98
98
        static PyMethodDef t_Object__methods_[] = {
99
99
            DECLARE_METHOD(t_Object, getClass, METH_NOARGS),
 
100
            DECLARE_METHOD(t_Object, equals, METH_O),
100
101
            { NULL, NULL, 0, NULL }
101
102
        };
102
103
 
123
124
            Class cls((jobject) NULL);
124
125
 
125
126
            OBJ_CALL(cls = self->object.getClass());
126
 
            return t_Class::wrapObject(cls);
 
127
            return t_Class::wrap_Object(cls);
 
128
        }
 
129
 
 
130
        static PyObject *t_Object_equals(t_Object *self, PyObject *arg)
 
131
        {
 
132
            Object a0((jobject) NULL);
 
133
            jboolean result;
 
134
 
 
135
            if (!parseArg(arg, "o", &a0))
 
136
            {
 
137
                OBJ_CALL(result = self->object.equals(a0));
 
138
                Py_RETURN_BOOL(result);
 
139
            }
 
140
 
 
141
            PyErr_SetArgsError((PyObject *) self, "equals", arg);
 
142
            return NULL;
127
143
        }
128
144
    }
129
145
}