Fixed crash on load.
Fixed dll crash on load by adding a check if the Json file exists or not.inventory_pr
							parent
							
								
									5f67d359b3
								
							
						
					
					
						commit
						19659da6c2
					
				| 
						 | 
					@ -24,10 +24,15 @@ std::map<SteamItemDef_t, std::map<std::string, std::string>> read_items_db(std::
 | 
				
			||||||
    std::map<SteamItemDef_t, std::map<std::string, std::string>> items;
 | 
					    std::map<SteamItemDef_t, std::map<std::string, std::string>> items;
 | 
				
			||||||
   
 | 
					   
 | 
				
			||||||
    std::ifstream items_file(items_db);
 | 
					    std::ifstream items_file(items_db);
 | 
				
			||||||
 | 
					    // If there is a file and we opened it
 | 
				
			||||||
 | 
					    if( items_file )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
        items_file.seekg(0, std::ios::end);
 | 
					        items_file.seekg(0, std::ios::end);
 | 
				
			||||||
        size_t size = items_file.tellg();
 | 
					        size_t size = items_file.tellg();
 | 
				
			||||||
        std::string buffer(size, '\0');
 | 
					        std::string buffer(size, '\0');
 | 
				
			||||||
        items_file.seekg(0);
 | 
					        items_file.seekg(0);
 | 
				
			||||||
 | 
					        // Read it entirely, if the .json file gets too big,
 | 
				
			||||||
 | 
					        // I should look into this and split reads into smaller parts.
 | 
				
			||||||
        items_file.read(&buffer[0], size); 
 | 
					        items_file.read(&buffer[0], size); 
 | 
				
			||||||
        items_file.close();
 | 
					        items_file.close();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,7 +45,7 @@ std::map<SteamItemDef_t, std::map<std::string, std::string>> read_items_db(std::
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SteamItemDef_t key = std::stoi((*i).key());
 | 
					                SteamItemDef_t key = std::stoi((*i).key());
 | 
				
			||||||
                nlohmann::json& value = (*i).value();
 | 
					                nlohmann::json& value = (*i).value();
 | 
				
			||||||
            for( auto& j : value.items() )
 | 
					                for (auto& j : value.items())
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    tmp[key][(*j).key()] = (*j).value();
 | 
					                    tmp[key][(*j).key()] = (*j).value();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					@ -52,6 +57,7 @@ std::map<SteamItemDef_t, std::map<std::string, std::string>> read_items_db(std::
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            PRINT_DEBUG("Error while parsing json: %s", e.what());
 | 
					            PRINT_DEBUG("Error while parsing json: %s", e.what());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return items;
 | 
					    return items;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -87,7 +87,7 @@ struct Steam_Inventory_Requests *get_inventory_result(SteamInventoryResult_t res
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Steam_Inventory(class Settings *settings, class SteamCallResults *callback_results, class SteamCallBacks *callbacks):
 | 
					Steam_Inventory(class Settings *settings, class SteamCallResults *callback_results, class SteamCallBacks *callbacks):
 | 
				
			||||||
    items(read_items_db(Local_Storage::get_program_path() + PATH_SEPARATOR + "steam_items.json"))
 | 
					    items(std::move(read_items_db(Local_Storage::get_program_path() + PATH_SEPARATOR + "steam_items.json")))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    this->settings = settings;
 | 
					    this->settings = settings;
 | 
				
			||||||
    this->callbacks = callbacks;
 | 
					    this->callbacks = callbacks;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue