Я не могу удалить объекты ... почему? - PullRequest
0 голосов
/ 21 мая 2019

Это мой кусок кода:

void deleteObject(Object o, Module m){
 Link lnk, delLnk
 string srcModName
 // delete outgoing links
 for lnk in o -> "*" do {
    delete(lnk)
 }
 Object srcO
 Link inLnk
 for inLnk in o <- "*" do {
    srcModName = fullName source(inLnk)
    print srcModName "izena\n"
    edit(srcModName, false)
    delLnk = inLnk
    delete(delLnk)
 }
 flushDeletions()
 hardDelete(o)
}

Он вылетает в строке hardDelete (o) , говоря, что я не могу удалить объект, потому что у него есть входные ссылки.Может кто-нибудь сказать мне, почему?

Ошибка:

Нет se puede suprimir el objeto: El objeto tiene enaltes entrantes

1 Ответ

1 голос
/ 21 мая 2019

Я считаю, что этот код:

 Link inLnk
 for inLnk in o <- "*" do {
    srcModName = fullName source(inLnk)
    print srcModName "izena\n"
    edit(srcModName, false)
    delLnk = inLnk
    delete(delLnk)
 }

не делает то, что вы думаете, что делает.Точнее говоря, это приведет к тому, что ссылки будут выбираться только там, где источник уже открыт, поскольку, если у вас есть команда 'edit', похоже, вы не пытаетесь это сделать.

string srcModName
for srcModName in o <- "*" do {
     edit ( srcModName , true , true , true ) 
}
Link inLnk
for inLnk in o <- "*" do {
   srcModName = fullName source(inLnk)
   print srcModName "izena\n"
   delLnk = inLnk
   delete(delLnk)
}

Это приведет к загрузкекаждый модуль, затем удалите ссылки.ПРИМЕЧАНИЕ - это не закроет открытые (теперь отредактированные) модули!Я также сделал так, чтобы эти модули открывались в видимом режиме (чтобы их можно было легко сохранять / закрывать) и в стандартном виде (чтобы уменьшить накладные расходы)

Удачи!

...