Changeset af23d24 in tol


Ignore:
Timestamp:
Feb 23, 2011, 9:04:37 AM (16 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
97d09a0
Parents:
3f6d71f
Message:

Fixes #1101
User functions will return a copy of the result for allowed types

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@3228 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/btol/bgrammar/oprimp.cpp

    r3f6d71f raf23d24  
    12981298          BGrammar* g = GrammarForArg(n,k);
    12991299          BGrammar::PutLast(g);
     1300          int stackPos = BGrammar::StackSize();
    13001301          var = EvaluateArgument(g,b);
    1301           if(!var) { BGrammar::CleanTreeCache(b, true); }
     1302          if(!var)
     1303          {
     1304            BGrammar::CleanTreeCache(b, true);
     1305            BGrammar::DestroyStackUntil(stackPos, NULL);   
     1306          }
    13021307        }
    13031308        BOut::Enable();
    … …  
    17101715
    17111716  BGrammar::PutLevel(save_level);
     1717  if(result)
     1718  {
     1719    BGrammar* rg = result->Grammar();
     1720    if(rg && rg->IsAutoContens())
     1721    {
     1722      if((rg!=GraNameBlock())&&(rg!=GraSet())&&(rg!=GraCode()))
     1723      {
     1724        BSyntaxObject* copy = result->CopyContens();
     1725        if(result->HasName()) { copy->PutName(result->Name()); }
     1726        if(result->Description().HasName()) { copy->PutDescription(result->Description()); }
     1727        DESTROY(result);
     1728        result = copy;
     1729      }
     1730    }
     1731  }
    17121732  return(result);
    17131733}
Note: See TracChangeset for help on using the changeset viewer.