Changeset 1238

Show
Ignore:
Timestamp:
06/08/08 19:53:46 (3 months ago)
Author:
drobilla
Message:

Use reasonable value for blank IDs when no base name is given.
Fix variable serialization in Ingen.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • redlandmm/redlandmm/World.hpp

    r1237 r1238  
    5858 
    5959        std::set<std::string> _blank_ids; 
     60        size_t                _next_blank_id; 
    6061}; 
    6162 
  • redlandmm/src/World.cpp

    r1237 r1238  
    3535 */ 
    3636World::World() 
     37        : _next_blank_id(0) 
    3738{ 
    3839        _c_obj = librdf_new_world(); 
     
    8687World::blank_id(const string base_name) 
    8788{ 
    88         /* 
    89         std::ostringstream ss; 
    90         ss << "b" << _next_blank_id++; 
     89        string name; 
    9190         
    92         if (base_name != "") 
    93                 ss << "_" << base_name; 
    94  
    95         Node result = Node(*this, Node::BLANK, ss.str()); 
    96         assert(result.to_string() == ss.str()); 
    97         return result; 
    98         */ 
    99  
    100         string name = base_name; 
    101         for (unsigned i = 2; _blank_ids.find(name) != _blank_ids.end(); ++i) { 
     91        if (base_name != "" && base_name != "b") { 
     92                name = base_name; 
     93                for (unsigned i = 2; _blank_ids.find(name) != _blank_ids.end(); ++i) { 
     94                        std::ostringstream ss; 
     95                        ss << "_" << i; 
     96                        name = ss.str(); 
     97                } 
     98        } else { 
    10299                std::ostringstream ss; 
    103                 ss << "_" << i
     100                ss << "b" << _next_blank_id++
    104101                name = ss.str(); 
    105102        } 
    106          
     103 
    107104        Node result = Node(*this, Node::BLANK, name); 
    108105        assert(result.to_string() == name);