[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