﻿# V6100\. An object is used as an argument to its own method\. Consider checking the first actual argument of the 'Foo' method\.

Анализатор обнаружил вызов метода, в который в качестве аргумента передаётся сам объект, у которого вызывается метод\. Вероятно, данный код содержит ошибку, и в метод должен передаваться другой объект\.

Рассмотрим пример:

```cpp
a.foo(a);
```

Здесь из\-за опечатки используется неверное имя переменной\. Тогда корректный код должен был быть таким:

```cpp
a.foo(b);
```

или таким:

```cpp
b.foo(a);
```

Пример кода из реального приложения:

```cpp
public class ByteBufferBodyConsumer {
  private ByteBuffer byteBuffer;
  ....
  public void consume(ByteBuffer byteBuffer) {
    byteBuffer.put(byteBuffer);
  }
}
```

Здесь в 'byteBuffer' пытаются вставить его собственные значения\.

Корректный код должен выглядеть так:

```cpp
public class ByteBufferBodyConsumer {
  private ByteBuffer byteBuffer;
  ....
  public void consume(ByteBuffer byteBuffer) {
    this.byteBuffer.put(byteBuffer);
  }
}
```