[anjuta-extras] profiler: porting to new symbol-db query iterface.
- From: Massimo Cora' <mcora src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta-extras] profiler: porting to new symbol-db query iterface.
- Date: Tue, 22 Jun 2010 21:34:57 +0000 (UTC)
commit 5b2015c87f771b049e4ce15469228030a949809d
Author: Massimo Corà <mcora src gnome org>
Date: Tue Jun 22 23:26:03 2010 +0200
profiler: porting to new symbol-db query iterface.
plugins/profiler/gprof-view.c | 44 +++++++++++++++++++++++++++++-----------
1 files changed, 32 insertions(+), 12 deletions(-)
---
diff --git a/plugins/profiler/gprof-view.c b/plugins/profiler/gprof-view.c
index 21ad73a..a15b894 100644
--- a/plugins/profiler/gprof-view.c
+++ b/plugins/profiler/gprof-view.c
@@ -118,29 +118,47 @@ gprof_view_show_symbol_in_editor (GProfView *self,
IAnjutaIterable *symbol_iter;
IAnjutaSymbol *symbol;
guint line;
+ IAnjutaSymbolQuery *query;
+ static IAnjutaSymbolField query_fields[] = {
+ IANJUTA_SYMBOL_FIELD_ID,
+ IANJUTA_SYMBOL_FIELD_NAME,
+ IANJUTA_SYMBOL_FIELD_TYPE
+ };
+
if (self->priv->symbol_manager &&
self->priv->document_manager)
{
- symbol_iter = ianjuta_symbol_manager_search (self->priv->symbol_manager,
- IANJUTA_SYMBOL_TYPE_FUNCTION,
- TRUE,
- IANJUTA_SYMBOL_FIELD_SIMPLE,
- symbol_name,
- FALSE,
- IANJUTA_SYMBOL_MANAGER_SEARCH_FS_PUBLIC,
- FALSE,
- -1,
- -1,
- NULL);
+ /* create one everytime. This method doesn't need particular performances */
+ query = ianjuta_symbol_manager_create_query (self->priv->symbol_manager,
+ IANJUTA_SYMBOL_QUERY_SEARCH,
+ IANJUTA_SYMBOL_QUERY_DB_PROJECT,
+ NULL);
+
+ ianjuta_symbol_query_set_fields (query,
+ G_N_ELEMENTS (query_fields),
+ query_fields, NULL);
+ ianjuta_symbol_query_set_file_scope (query,
+ IANJUTA_SYMBOL_QUERY_SEARCH_FS_PUBLIC, NULL);
+
+ ianjuta_symbol_query_set_mode (query,
+ IANJUTA_SYMBOL_QUERY_MODE_SYNC, NULL);
+
+ ianjuta_symbol_query_set_filters (query, IANJUTA_SYMBOL_TYPE_FUNCTION,
+ TRUE, NULL);
+
+
+ /* do the search */
+ symbol_iter = ianjuta_symbol_query_search (query, symbol_name, NULL);
+
if (symbol_iter &&
ianjuta_iterable_get_length (symbol_iter, NULL) > 0)
{
GFile* file;
symbol = IANJUTA_SYMBOL (symbol_iter);
file = ianjuta_symbol_get_file (symbol, NULL);
- line = ianjuta_symbol_get_line (symbol, NULL);
+ line = ianjuta_symbol_get_int (symbol, IANJUTA_SYMBOL_FIELD_FILE_POS, NULL);
ianjuta_document_manager_goto_file_line (self->priv->document_manager,
file, line, NULL);
@@ -148,6 +166,8 @@ gprof_view_show_symbol_in_editor (GProfView *self,
g_object_unref (symbol_iter);
g_object_unref (file);
}
+
+ g_object_unref (query);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]