NS_IMETHODIMP nsRenderingContextPh :: DrawPolyline(const nsPoint aPoints[], PRInt32 aNumPoints) { PR_LOG(PhGfxLog, PR_LOG_DEBUG, ("untested nsRenderingContextPh::DrawPolyLine\n"));  if( nsLineStyle_kNone == mCurrentLineStyle ) return NS_OK;  PhPoint_t *pts;  if(( pts = new PhPoint_t [aNumPoints] ) != NULL ) { PhPoint_t pos = {0,0}; PRInt32 i;  for(i=0;i<aNumPoints;i++) { int x,y; x = aPoints[i].x; y = aPoints[i].y; mTMatrix->TransformCoord(&x,&y); pts[i].x = x; pts[i].y = y; }  SELECT(mSurface); SetPhLineStyle(); PgDrawPolygon( pts, aNumPoints, &pos, Pg_DRAW_STROKE );  delete [] pts; } PgFLUSH(); return NS_OK; }
NS_IMETHODIMP DrawPolyline(const nsPoint aPoints[], PRInt32 aNumPoints) { return DrawPolygon( aPoints, aNumPoints ); }
NS_IMETHODIMP nsRenderingContextPh :: DrawPolyline(const nsPoint aPoints[], PRInt32 aNumPoints){  PR_LOG(PhGfxLog, PR_LOG_DEBUG, ("untested nsRenderingContextPh::DrawPolyLine\n"));  if( nsLineStyle_kNone == mCurrentLineStyle )    return NS_OK;  PhPoint_t *pts;  if(( pts = new PhPoint_t [aNumPoints] ) != NULL )  {    PhPoint_t pos = {0,0};    PRInt32 i;    for(i=0;i<aNumPoints;i++)    {    int x,y;      x = aPoints[i].x;      y = aPoints[i].y;      mTMatrix->TransformCoord(&x,&y);      pts[i].x = x;      pts[i].y = y;    }    SELECT(mSurface);    SetPhLineStyle();    PgDrawPolygon( pts, aNumPoints, &pos, Pg_DRAW_STROKE );    delete [] pts;  }  PgFLUSH();	//kedl  return NS_OK;}