[devel] Q: gcj and j2me

Ivan Zakharyaschev =?iso-8859-1?q?imz_=CE=C1_altlinux=2Eru?=
Вт Ноя 4 00:30:17 MSK 2003


	Hello!

On Mon, 3 Nov 2003, Alexander Bokovoy wrote:

> Вопрос к тем, кто имеет дело с Java и GNU Java Compiler.

Не то, чтобы я имею с ними дело... но решил написать, что
приходит в голову при взгляде на этот кусочек.

> ../../src/share/classes/java/lang/Class.java:60: Duplicate
> variable declaration: `ClassLoader loader' was ` null loader'
> (<built-in>:0).
>        private ClassLoader    loader; /* For GC purposes only!
> */
>                               ^

> библиотеку классов). Вот в этом и вопрос -- как этого
> добиться? Ведь в
> данном случае я собираю стандартную библиотеку классов и
> виртуальную
> машину J2ME и потому этот ClassLoader должен быть определен
> именно в
> ../../src/share/classes/java/lang/Class.java, а не в
> <built-in>:0.

Здесь объявляется переменная loader типа ClassLoader. Более того,
private. Может быть, решением будет что-то из этого:

1. Если стандарт языка не запрещает объявлять
переменные с именем loader, то исправить gcc.

2. Переименовать loader в этом исходнике во что-нибудь другое.
Т.к. она private, то область видимости имени должна быть сильно
ограничена (классом?). Может, всё и не так просто и там есть
какие-то хитрости с именем в таких внутренностях. (Глядя на
комментарий, можно предположить, что она нужна, чтобы
предотвратить удаление важного loader-а во время обычного GC --
тогда важен просто факт сохранения ссылки на объект в какой-то
переменной, не важно, в какой и с каким именем. А может всё
совсем по другому.)

3. Надеяться, что loader, определяемый gcc, подойдёт.

-- 
С наилучшими пожеланиями,
Иван Захарьящев, Москва
::
JabberID: imz at altlinux.org



Подробная информация о списке рассылки Devel