Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node has both "Free" and "Occupancy" flags. #53

Closed
histfuture opened this issue Aug 7, 2017 · 2 comments
Closed

Node has both "Free" and "Occupancy" flags. #53

histfuture opened this issue Aug 7, 2017 · 2 comments

Comments

@histfuture
Copy link

histfuture commented Aug 7, 2017

Hi , I am traversing a glvtree with branching factor 8 and level 16, the pointcloud is random generated, a strange node appears when traversing into level 9:

L9 ####################### Address: 0000000502200C80 I[0][ U S ] I[1][ UXP S ] I[2][ U S ] I[3][ U S ] I[4][ UXP S ] I[5][ U S ] I[6][ U S ] I[7][F X L S ]
The 7th child has 'F'(free),'X'(occupied) , 'L'(last level) status.
My problem is ,

  1. As mentioned in Buggy assert in print() function? #52 ,the 'L' status should only be set in the level 1 ,but the current level is 9(whose children are in 8)
  2. Why a node would be both 'occupied' and 'free' ?
@histfuture histfuture changed the title An node has both "Free" and "Occupancy" flags. Node has both "Free" and "Occupancy" flags. Aug 7, 2017
@cjue
Copy link
Contributor

cjue commented Aug 7, 2017

Hi, were you able to find the cause of your problem?
Sounds like a memory corruption issue.

@histfuture
Copy link
Author

histfuture commented Aug 8, 2017

@cjue The problem was caused by myself. The loop I used to iterate a node's children is
`

           InnerNode *child = (InnerNode *) node.getChildPtr();

            for (uint32_t c = 0; c < branching_factor; ++c) {
                child = child + c; //<----------error here
                getStatusString(status, child->getStatus());
                printf(" I[%d][%s][%016llX] ", c, status, child);
                if (child->isOccupied()) {
                    node = *child;
                }
            }

`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants