Faits: A. A._, née en 1955, a bénéficié d'une demi-rente de l'assurance-invalidité du 1er mars 2001 au 31 mars 2005 (pour cas pénible), puis d'un quart de rente à compter du 1er avril 2005 fondé sur un taux d'invalidité de 45 %. A l'issue d'une procédure de révision du droit à la rente, l'Office cantonal de l'assurance-invalidité a constaté que l'état de santé de l'assurée s'était amélioré. L'évaluation de l'invalidité a abouti à un degré de 39 %, ce qui a conduit l'office AI à supprimer la rente par décision du 24 octobre 2008. B. A._ a déféré cette décision au Tribunal cantonal des assurances sociales de la République et canton de Genève en concluant au maintien du quart de rente ainsi qu'à l'octroi de mesures professionnelles. Par jugement du 3 mars 2009, la juridiction cantonale a rejeté le recours. Elle a toutefois substitué ses motifs à ceux de l'office AI, considérant que l'octroi du quart de rente était jadis manifestement erroné. Le tribunal a dès lors confirmé la suppression de rente, après avoir fixé le degré d'invalidité à 34 %. C. A._ interjette un recours en matière de droit public contre ce jugement dont elle demande l'annulation, avec suite de dépens, en concluant au renvoi de la cause aux premiers juges. Elle sollicite le bénéfice de l'assistance judiciaire. L'intimé conclut au rejet du recours. L'Office fédéral des assurances sociales a renoncé à se déterminer. 