view Android/java/org/madbutterfly/coord.java @ 887:8a2d676d9fa3 abs_n_rel_center

Fix bug of clearing COF_TEMP_MARK. draw_shapes_in_dirty_areas() mark COF_TEMP_MARK on coords and clear them before leaving. But, it always clear the same one coord for several times and keep others untouched. It is a logical error. It can be avoided by avoiding to use the variable at mutliple place for different purpose in a function, and compiler will check it out by yelling that the variable is used before assigning a value.
author Thinker K.F. Li <thinker@codemud.net>
date Sun, 26 Sep 2010 14:07:05 +0800
parents c468e397614d
children
line wrap: on
line source

package org.madbutterfly;

import java.util.ArrayList;

public class coord {
    protected int addr;
    redraw_man rdman;
    public ArrayList children;
    public ArrayList members;

    public coord(redraw_man rdman, int addr) {
	this.addr = addr;
	this.rdman = rdman;
	children = new ArrayList();
	members = new ArrayList();
    }

    protected void invalid() {
	addr = 0;
    }

    protected void finalize() {
	if(addr != 0)
	    _jni.rdman_coord_free(rdman._rdman_addr, addr);
    }

    public void add_shape(shape member) {
	_jni.rdman_add_shape(rdman._rdman_addr, member.addr, addr);
	members.add(member);
	member.parent = this;
	_jni.rdman_coord_changed(rdman._rdman_addr, addr);
	_jni.rdman_shape_changed(rdman._rdman_addr, member.addr);
    }
}