Reference counting and smart pointers.

This commit is contained in:
Vincent Richard 2005-07-17 20:30:49 +00:00
parent dafac00334
commit 66ad33c37b

View File

@ -44,18 +44,18 @@ GtkWidget* textArea = NULL;
GtkTreeStore* treeModel = NULL; GtkTreeStore* treeModel = NULL;
vmime::message* currentMessage = NULL; vmime::ref <vmime::message> currentMessage = NULL;
void insertRowInModel(GtkTreeStore* model, const vmime::component* comp, GtkTreeIter* parent = NULL) void insertRowInModel(GtkTreeStore* model, vmime::ref <const vmime::component> comp, GtkTreeIter* parent = NULL)
{ {
GtkTreeIter iter; GtkTreeIter iter;
gtk_tree_store_append(model, &iter, parent); gtk_tree_store_append(model, &iter, parent);
gtk_tree_store_set(model, &iter, 0, typeid(*comp).name(), 1, comp, -1); gtk_tree_store_set(model, &iter, 0, typeid(*comp).name(), 1, comp.get(), -1);
const std::vector <const vmime::component*> children = comp->getChildComponents(); const std::vector <vmime::ref <const vmime::component> > children = comp->getChildComponents();
for (int i = 0 ; i < children.size() ; ++i) for (int i = 0 ; i < children.size() ; ++i)
{ {
@ -134,10 +134,9 @@ void openFile(const std::string& filename)
} }
while (file.gcount()); while (file.gcount());
vmime::message* msg = new vmime::message(); vmime::ref <vmime::message> msg = vmime::create <vmime::message>();
msg->parse(data); msg->parse(data);
delete (currentMessage);
currentMessage = msg; currentMessage = msg;
char* convData = g_convert_with_fallback(data.c_str(), data.length(), char* convData = g_convert_with_fallback(data.c_str(), data.length(),