Update chains structures

- Fixes chains structure parsing
- Fix Semaphore node parsing
This commit is contained in:
Dhananjay Balan
2013-06-24 09:40:59 +05:30
committed by Chris Johns
parent 56a70aec55
commit 10bcd5d4dc
3 changed files with 21 additions and 14 deletions

View File

@@ -14,15 +14,17 @@ class node:
self.node_val = node_val
def null(self):
return self.node_val['next'] == 0
if not self.node_val:
return True
return False
def next(self):
if not self.null():
self.node_val = self.node_val['next'].dereference()
self.node_val = self.node_val['next']
def previous(self):
if not self.null():
self.node_val = self.node_val['previous'].dereference()
self.node_val = self.node_val['previous']
def cast(self, typename):
if not self.null():
@@ -30,6 +32,7 @@ class node:
return self.node_val.cast(nodetype)
return None
class control:
"""Manage the Chain_Control."""
@@ -37,7 +40,8 @@ class control:
self.ctrl = ctrl
def first(self):
return node(self.ctrl['first'].dereference())
t = node(self.ctrl['Head']['Node'])
return t
def last(self):
return node(self.ctrl['first'])