view po/Makefile.mingw @ 15976:a6a79b8616bf

I commonly see a crash in which socket_ready_cb(), shortly after a laptop wakes from sleep, is passed invalid (previously freed) connect_data. It looks like this: Thread 0 Crashed: 0 libobjc.A.dylib 0x90a59380 objc_msgSend 16 1 Libgaim 0x0fe23bcd gaim_proxy_connect_data_disconnect 172 2 Libgaim 0x0fe23d63 socket_ready_cb 199 3 com.apple.CoreFoundation 0x90843ffd __CFSocketDoCallback 551 (objc_msgSend is how ObjC routes messages... it's being called because connect_data->cconnect_cb is invalid). It appears that when this crash happens, the socket is marked as ready just before the computer sleeps; on the next run loop, the callback will be called [socket_ready_cb()]. The computer sleeps and every account is disconnected first, which calls gaim_proxy_connect_cancel_with_handle(), destroying the connect_data. When it awakens, it calls socket_ready_cb() and the crash occurs. I've added PURPLE_PROXY_CONNECT_DATA_IS_VALID, which takes advantage of the fact that all valid connect_data objects are stored in the handles GSList, just as PURPLE_GAIM_CONNECTION_IS_VALID works.
author Evan Schoenberg <evan.s@dreskin.net>
date Sun, 01 Apr 2007 02:17:06 +0000
parents e04c98c1bce9
children ded8da3de5f8
line wrap: on
line source

# Makefile.mingw
#
# Description: Makefile to generate mo files
#

GAIM_TOP := ..
include $(GAIM_TOP)/libpurple/win32/global.mak

PACKAGE = pidgin

.SUFFIXES:
.SUFFIXES: .po .gmo

##
## SOURCES, OBJECTS
##

CATALOGS = $(patsubst %.po,%.gmo,$(wildcard *.po))

##
## RULES
##

.po.gmo:
	rm -f $@ && $(GMSGFMT) --statistics -o $@ $<

##
## TARGETS
##

.PHONY: all install clean

all: $(CATALOGS)

install: all
	mkdir -p $(GAIM_INSTALL_PO_DIR)
	@catalogs='$(CATALOGS)'; \
	for cat in $$catalogs; do \
	  cat=`basename $$cat`; \
	  lang=`echo $$cat | sed 's/\.gmo$$//'`; \
	  dir=$(GAIM_INSTALL_PO_DIR)/$$lang/LC_MESSAGES; \
	  mkdir -p $$dir; \
	  if test -r $$cat; then \
	    cp $$cat $$dir/$(PACKAGE).mo; \
	    echo "installing $$cat as $$dir/$(PACKAGE).mo"; \
	  else \
	    cp $(GAIM_PO_TOP)/$$cat $$dir/$(PACKAGE).mo; \
	    echo "installing $(GAIM_PO_TOP)/$$cat as" \
		 "$$dir/$(PACKAGE).mo"; \
	  fi; \
	done

clean:
	rm -f *.gmo