Hi

On Fri, Mar 2, 2012 at 4:47 AM, Guillaume Lelarge <guilla...@lelarge.info>wrote:

> On Thu, 2012-03-01 at 15:01 +0530, Akshay Joshi wrote:
> >
> >
> > On Thu, Mar 1, 2012 at 2:47 PM, Dave Page <dp...@pgadmin.org> wrote:
> >         Hi Akshay
> >
> >
> >         On Thu, Mar 1, 2012 at 8:14 AM, Akshay Joshi
> >         <akshay.jo...@enterprisedb.com> wrote:
> >         > Hi Guillaume
> >         >
> >         > On Thu, Mar 1, 2012 at 4:55 AM, Guillaume Lelarge
> >         <guilla...@lelarge.info>
> >         > wrote:
> >         >>
> >         >> On Tue, 2012-02-28 at 09:21 +0100, Guillaume Lelarge wrote:
> >         >> > On Tue, 2012-02-28 at 12:41 +0530, Akshay Joshi wrote:
> >         >> > > Hi Guillaume/Dave
> >         >> > >
> >         >> > > On Tue, Feb 28, 2012 at 4:02 AM, Guillaume Lelarge
> >         >> > > <guilla...@lelarge.info> wrote:
> >         >> > >         On Mon, 2012-02-27 at 16:49 +0000, Dave Page
> >         wrote:
> >         >> > >         > Thanks, applied.
> >         >> > >         >
> >         >> > >
> >         >> > >         I probably have missed something. I thought the
> >         work on 2.9
> >         >> > >         wasn't
> >         >> > >         finished. Are you able to compile with 2.9 on
> >         Windows?
> >         >> > >
> >         >> > >
> >         >> > >   Yes, I am able to compile it with 2.9 on Windows. I
> >         have created two
> >         >> > > configurations Debug (2.9) and Release(2.9) where
> >         wxWidgets libraries
> >         >> > > gets changed from
> >         >> > >   2.8 to 2.9. Attached is the patch which contain
> >         changes in ".sln"
> >         >> > > and ".vcproj" file.
> >         >> > >   For the work on 2.9 as concern, I have fixed
> >         issues/asserts that I
> >         >> > > have found. It is possible that there are many more
> >         such
> >         >> > > asserts/issues that we will have to fix.
> >         >> > >
> >         >> > >   Dave, If patch looks good to you then can you please
> >         commit it.
> >         >> > >
> >         >> >
> >         >> > That's great. If your .sln/.vcproj files allow us to
> >         still work on 2.8,
> >         >> > I see no reason not to apply them. (I won't apply them
> >         myself because I
> >         >> > have no Windows PC right now to check them, but I guess
> >         Dave will be
> >         >> > able to do that quicker than me)
> >         >> >
> >         >>
> >         >> I compiled 2.9 on my laptop, and compiled pgAdmin master
> >         against it.
> >         >> Compilation went fine, but I cannot start it. Did you also
> >         build it on
> >         >> Linux? and if so, does it work for you?
> >         >
> >         >
> >         >    I am facing the same issue on my Ubuntu machine. I got
> >         segmentation fault
> >         > with below mentioned error messages
> >         >
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-CRITICAL **: g_once_init_leave:
> >         assertion
> >         > `initialization_value != 0' failed
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         g_type_add_interface_static:
> >         > assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         g_type_add_interface_static:
> >         > assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         g_type_add_interface_static:
> >         > assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-CRITICAL **: g_once_init_leave:
> >         assertion
> >         > `initialization_value != 0' failed
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         > /build/buildd/glib2.0-2.24.1/gobject/gtype.c:2706: You
> >         forgot to call
> >         > g_type_init()
> >         > (process:3401): GLib-GObject-CRITICAL **:
> >         g_type_add_interface_static:
> >         > assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
> >         > (process:3401): GLib-CRITICAL **: g_once_init_leave:
> >         assertion
> >         > `initialization_value != 0' failed
> >         > (process:3401): GLib-GObject-CRITICAL **: g_object_new:
> >         assertion
> >         > `G_TYPE_IS_OBJECT (object_type)' failed
> >         > Segmentation fault
> >         >
> >         >  I have googled but unable to find any solution. Will
> >         working on the same.
> >
> >
> >         Can you ping the wxWidgets list for help please?
> >
> >
> >   Sure. It works on OSX and Windows, but not on Ubuntu. If anybody
> > have any idea on this please help.
> >
>
> I don't have much idea, but it seems to be related to
> http://www.wxwidgets.org/develop/standard.htm#no_globals
>
> Not sure how much help it is, but still, it might be worth the shot.
>

  Thanks Guillaume for sharing the link, it helps me. Yesterday I have
posted the issue on wxWidgets forum and got the response that we have a
wxFont instance
  as global or static variable somewhere in the code. Then I found wxFont
instance as static variable in *"hdFontAttribute.h"*. I have modified the
code and try to fix
  the crash, it works for me.

  Attached is the patch file contains the fix. Please review it and If
solution looks appropriate, then can you please commit it.

>
>
> --
> Guillaume
> http://blog.guillaume.lelarge.info
> http://www.dalibo.com
>
>


-- 
*Akshay Joshi
Senior Software Engineer
EnterpriseDB Corporation
The Enterprise PostgreSQL Company
Phone: +91 20-3058-9522
Mobile: +91 976-788-8246*
diff --git a/pgadmin/dd/dditems/handles/ddSouthTableSizeHandle.cpp b/pgadmin/dd/dditems/handles/ddSouthTableSizeHandle.cpp
index d7c1edd..847b9f2 100644
--- a/pgadmin/dd/dditems/handles/ddSouthTableSizeHandle.cpp
+++ b/pgadmin/dd/dditems/handles/ddSouthTableSizeHandle.cpp
@@ -59,7 +59,7 @@ void ddSouthTableSizeHandle::invokeStep(hdMouseEvent &event, hdDrawingView *view
 {
 	int y = event.GetPosition().y;
 	ddTableFigure *table = (ddTableFigure *) getOwner();
-	wxFont font = hdFontAttribute::defaultFont;
+	wxFont font = *hdFontAttribute::defaultFont;
 	int colOffset = table->getColDefaultHeight(font);
 
 	int divBy = (table->getTotalColumns() - table->getColumnsWindow());
diff --git a/pgadmin/hotdraw/figures/defaultAttributes/hdFontAttribute.cpp b/pgadmin/hotdraw/figures/defaultAttributes/hdFontAttribute.cpp
index 6853d80..c10c205 100644
--- a/pgadmin/hotdraw/figures/defaultAttributes/hdFontAttribute.cpp
+++ b/pgadmin/hotdraw/figures/defaultAttributes/hdFontAttribute.cpp
@@ -21,12 +21,12 @@
 #include "hotdraw/figures/defaultAttributes/hdFontAttribute.h"
 #include "hotdraw/figures/hdAttribute.h"
 
-wxFont hdFontAttribute::defaultFont = wxFont(10, wxSWISS, wxNORMAL, wxNORMAL);
+wxFont* hdFontAttribute::defaultFont = NULL;
 
 hdFontAttribute::hdFontAttribute():
 	hdAttribute()
 {
-	fontAttributes = defaultFont;
+	fontAttributes = *defaultFont;
 }
 
 void hdFontAttribute::apply(wxBufferedDC &context)
@@ -42,4 +42,9 @@ void hdFontAttribute::callDefaultChangeDialog(wxWindow *owner)
 wxFont &hdFontAttribute::font()
 {
 	return fontAttributes;
-}
\ No newline at end of file
+}
+
+void hdFontAttribute::InitFont()
+{
+	defaultFont = new wxFont(10, wxSWISS, wxNORMAL, wxNORMAL);
+}
diff --git a/pgadmin/hotdraw/figures/hdSimpleTextFigure.cpp b/pgadmin/hotdraw/figures/hdSimpleTextFigure.cpp
index 979a763..191ba4b 100644
--- a/pgadmin/hotdraw/figures/hdSimpleTextFigure.cpp
+++ b/pgadmin/hotdraw/figures/hdSimpleTextFigure.cpp
@@ -27,7 +27,7 @@
 hdSimpleTextFigure::hdSimpleTextFigure(wxString textString)
 {
 	textEditable = false;
-	font = hdFontAttribute::defaultFont;
+	font = *hdFontAttribute::defaultFont;
 	padding = 2;
 	setText(textString);
 	showMenu = false;
diff --git a/pgadmin/hotdraw/main/hdDrawingEditor.cpp b/pgadmin/hotdraw/main/hdDrawingEditor.cpp
index 0eceb7d..a38ffd9 100644
--- a/pgadmin/hotdraw/main/hdDrawingEditor.cpp
+++ b/pgadmin/hotdraw/main/hdDrawingEditor.cpp
@@ -287,7 +287,7 @@ void hdDrawingEditor::remOrDelSelFigures(int diagramIndex)
 
 void hdDrawingEditor::changeDefaultFiguresFont()
 {
-	hdFontAttribute::defaultFont = wxGetFontFromUser(editorOwner, hdFontAttribute::defaultFont, wxT("Select a default font for figures..."));
+	*hdFontAttribute::defaultFont = wxGetFontFromUser(editorOwner, *hdFontAttribute::defaultFont, wxT("Select a default font for figures..."));
 }
 
 bool hdDrawingEditor::modelHasChanged()
diff --git a/pgadmin/hotdraw/main/hdDrawingView.cpp b/pgadmin/hotdraw/main/hdDrawingView.cpp
index ce5dd94..c72edba 100644
--- a/pgadmin/hotdraw/main/hdDrawingView.cpp
+++ b/pgadmin/hotdraw/main/hdDrawingView.cpp
@@ -339,7 +339,7 @@ void hdDrawingView::simpleTextToolChangeHandler(wxCommandEvent &event)
 		//getFontMetrics
 		int width, height;
 		wxWindowDC dc(this);
-		dc.SetFont(hdFontAttribute::defaultFont);
+		dc.SetFont(*hdFontAttribute::defaultFont);
 		if(simpleTextFigure->getText(true).length() > 5)
 			dc.GetTextExtent(simpleTextFigure->getText(true), &width, &height);
 		else
@@ -470,4 +470,4 @@ void hdDrawingView::OnGenericViewPopupClick(wxCommandEvent &event)
 void hdDrawingView::notifyChanged()
 {
 	drawingEditor->notifyChanged();
-}
\ No newline at end of file
+}
diff --git a/pgadmin/include/hotdraw/figures/defaultAttributes/hdFontAttribute.h b/pgadmin/include/hotdraw/figures/defaultAttributes/hdFontAttribute.h
index 74c982b..1bfee5c 100644
--- a/pgadmin/include/hotdraw/figures/defaultAttributes/hdFontAttribute.h
+++ b/pgadmin/include/hotdraw/figures/defaultAttributes/hdFontAttribute.h
@@ -21,7 +21,8 @@ public:
 	virtual void callDefaultChangeDialog(wxWindow *owner = NULL);
 	virtual void apply(wxBufferedDC &context);
 	wxFont &font();
-	static wxFont defaultFont;
+	static wxFont* defaultFont;
+	static void InitFont();
 protected:
 	wxFont fontAttributes;
 };
diff --git a/pgadmin/pgAdmin3.cpp b/pgadmin/pgAdmin3.cpp
index ee222b6..0ae46a9 100644
--- a/pgadmin/pgAdmin3.cpp
+++ b/pgadmin/pgAdmin3.cpp
@@ -229,6 +229,8 @@ bool pgAdmin3::OnInit()
 		locale->AddCatalog(wxT("pgadmin3"));
 	}
 
+	//Initialize Font
+	hdFontAttribute::InitFont();
 
 	long langCount = 0;
 	const wxLanguageInfo *langInfo;
-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to