def add_locks(self, lock_mgr): self.lock_mgr = lock_mgr for entry in self.entries: first = True assign_last = None name_addr = entry.access.r_s("dol_Name") #print "*** Entry %s, Name address is %s,%s" % (entry.mem,name_addr,self.mem.r_bstr(name_addr)) for dirs in entry.assigns: lock = lock_mgr.create_lock(None,dirs,False) if lock is None: log_doslist.warning("%s does not exist", dirs) else: entry.locks.append(lock) if first: entry.access.w_s("dol_Lock",lock.mem.addr) first = False else: assign_entry = self.alloc.alloc_struct("AssignList",AssignListStruct) entry.alist.append(assign_entry) assign_entry.access.w_s("al_Next",0) assign_entry.access.w_s("al_Lock",lock.mem.addr) if assign_last != None: assign_last.w_s("al_Next",assign_entry.addr) else: entry.access.w_s("dol_List",assign_entry.addr) assign_last = assign_entry.access