Using \adjustwidth from changepage to make a narrower ToC introduces an extra blank page, how to remove it?

I am required to typeset a ToC that is narrower than the \textwdith or \linewidth. I use the \adjustwidth from the changepage package for this and it almost works except that it introduces a blank page before the actual ToC page.

I simplified this into a minimal example so you can see what is happening here (please copy & paste these two code blocks into two named files and compile the narrowtoc.tex):

narrow-toc.cls

\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesClass{narrow-toc}

\DeclareOption*{
\PassOptionsToClass{\CurrentOption}{report}
}
\ProcessOptions\relax

\RequirePackage{changepage}

\let\cleardoublepage\clearpage

\let\oldtableofcontents = \tableofcontents
\renewcommand{\tableofcontents}{
%\clearpage % even after comment out this, there is still a blank page before the toc
\pagestyle{plain}
\oldtableofcontents
}


narrowtoc.tex

\documentclass{narrow-toc}

\title{A normal title}
\author{My name}
\begin{document}

\maketitle
\tableofcontents

\chapter{My first chapter}
Texts

\end{document}


The produced pdf file has 4 pages: its "Table of Contents" is in page 3, while page 2 is blank and page 1 is the title page.

How can I remove this blank page 2? Here the report document class is used, so this is not a problem solved by "oneside" option.

-

The environment adjustwidth starts a list and then \oldtableofcontents issues a \clearpage (from \chapter*); add \let\clearpage\relax to the definition.

\renewcommand{\tableofcontents}{%
\pagestyle{plain}